{
  "openapi": "3.1.0",
  "info": {
    "title": "Oshun Study & Deconstruction Workspace API",
    "version": "0.16.0"
  },
  "paths": {
    "/health": {
      "get": {
        "operationId": "health",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "const": "ok"
                    },
                    "service": {
                      "type": "string",
                      "const": "svc-study-workspace"
                    },
                    "version": {
                      "type": "string",
                      "minLength": 1
                    },
                    "env": {
                      "type": "string",
                      "minLength": 1
                    },
                    "uptimeSeconds": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "status",
                    "service",
                    "version",
                    "env",
                    "uptimeSeconds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        }
      }
    },
    "/ready": {
      "get": {
        "operationId": "ready",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "service": {
                      "type": "string",
                      "const": "svc-study-workspace"
                    },
                    "ready": {
                      "type": "boolean"
                    },
                    "probes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ok",
                              "failed",
                              "not-configured"
                            ]
                          },
                          "latencyMs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "status",
                          "latencyMs"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "service",
                    "ready",
                    "probes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "503": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "service": {
                      "type": "string",
                      "const": "svc-study-workspace"
                    },
                    "ready": {
                      "type": "boolean"
                    },
                    "probes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ok",
                              "failed",
                              "not-configured"
                            ]
                          },
                          "latencyMs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "status",
                          "latencyMs"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "service",
                    "ready",
                    "probes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/metrics": {
      "get": {
        "operationId": "metrics",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        }
      }
    },
    "/api/study/projects": {
      "post": {
        "operationId": "createProject",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "purpose": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "name",
                  "purpose"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listProjects",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "projects": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "purpose": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "members": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "role": {
                                  "type": "string",
                                  "enum": [
                                    "owner",
                                    "editor",
                                    "commenter",
                                    "viewer"
                                  ]
                                },
                                "joinedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "userId",
                                "role",
                                "joinedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "membershipHistory": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "added",
                                    "role-changed",
                                    "removed"
                                  ]
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "role": {
                                  "type": "string",
                                  "enum": [
                                    "owner",
                                    "editor",
                                    "commenter",
                                    "viewer"
                                  ]
                                },
                                "actorUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "userId",
                                "actorUserId",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "curriculum": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "policyGrantIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "sourceWorkIds": {
                            "maxItems": 2000,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "notebookRefs": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "inspirationCollectionIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "targetProjects": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "yemaya-production",
                                    "instrumented-game"
                                  ]
                                },
                                "projectRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "projectRef",
                                "label"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "archiveState": {
                            "type": "string",
                            "enum": [
                              "active",
                              "archived"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "name",
                          "purpose",
                          "members",
                          "membershipHistory",
                          "curriculum",
                          "policyGrantIds",
                          "sourceWorkIds",
                          "notebookRefs",
                          "inspirationCollectionIds",
                          "targetProjects",
                          "archiveState"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "projects"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/home": {
      "get": {
        "operationId": "workspaceHome",
        "parameters": [
          {
            "name": "at",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "home": {
                      "type": "object",
                      "properties": {
                        "generatedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "resumeStudies": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "name": {
                                "type": "string"
                              },
                              "archiveState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "archived"
                                ]
                              },
                              "lastActivityAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "overview": {
                                "type": "object",
                                "properties": {
                                  "projectId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "name": {
                                    "type": "string"
                                  },
                                  "archiveState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "archived"
                                    ]
                                  },
                                  "memberCount": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "anchorCount": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "observationCount": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "claimCount": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "openReviewCount": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "rights": {
                                    "type": "object",
                                    "properties": {
                                      "active": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "expiringSoon": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "expired": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "revoked": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "active",
                                      "expiringSoon",
                                      "expired",
                                      "revoked"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "projectId",
                                  "name",
                                  "archiveState",
                                  "memberCount",
                                  "anchorCount",
                                  "observationCount",
                                  "claimCount",
                                  "openReviewCount",
                                  "rights"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "projectId",
                              "name",
                              "archiveState",
                              "lastActivityAt",
                              "overview"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "jobs": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "analysisRunId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "lifecycle": {
                                "type": "string",
                                "enum": [
                                  "queued",
                                  "running"
                                ]
                              },
                              "pipelineVersion": {
                                "type": "string",
                                "minLength": 1
                              },
                              "qualityTier": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "standard",
                                  "high"
                                ]
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "analysisRunId",
                              "lifecycle",
                              "pipelineVersion",
                              "qualityTier",
                              "updatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "assignments": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "exerciseId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "objective": {
                                "type": "string"
                              },
                              "conceptRef": {
                                "type": "string"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "exerciseId",
                              "objective",
                              "conceptRef",
                              "updatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reviews": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "observation",
                                  "claim",
                                  "revalidation"
                                ]
                              },
                              "recordId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "reason": {
                                "type": "string"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "kind",
                              "recordId",
                              "reason",
                              "updatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "expiringRights": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "grantId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "expiring-soon",
                                  "expired"
                                ]
                              },
                              "validUntil": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "grantId",
                              "status",
                              "validUntil"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "recentFindings": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "observation",
                                  "claim"
                                ]
                              },
                              "recordId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "kind",
                              "recordId",
                              "reviewState",
                              "createdAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "unansweredQuestions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "questionId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "questionText": {
                                "type": "string"
                              },
                              "lifecycle": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "scope": {
                                "type": "string"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "questionId",
                              "questionText",
                              "lifecycle",
                              "scope",
                              "updatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "totals": {
                          "type": "object",
                          "properties": {
                            "projects": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "activeJobs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "openAssignments": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "pendingReviews": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "expiringRights": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "openQuestions": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "projects",
                            "activeJobs",
                            "openAssignments",
                            "pendingReviews",
                            "expiringRights",
                            "openQuestions"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "generatedAt",
                        "resumeStudies",
                        "jobs",
                        "assignments",
                        "reviews",
                        "expiringRights",
                        "recentFindings",
                        "unansweredQuestions",
                        "totals"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "home"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/onboarding/seed": {
      "get": {
        "operationId": "seededWorkspace",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "seed": {
                      "type": "object",
                      "properties": {
                        "entries": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "seedClass": {
                                "type": "string",
                                "enum": [
                                  "exemplar-study",
                                  "production-material",
                                  "game-footage",
                                  "walkthrough",
                                  "template"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "title": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "teaches": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 8000
                              },
                              "asks": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "partIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "caveats": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 4000
                                }
                              }
                            },
                            "required": [
                              "seedClass",
                              "id",
                              "title",
                              "teaches",
                              "from",
                              "partIds",
                              "caveats"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "withheld": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "seedClass": {
                                "type": "string",
                                "enum": [
                                  "exemplar-study",
                                  "production-material",
                                  "game-footage",
                                  "walkthrough",
                                  "template"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reasons": {
                                "minItems": 1,
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 4000
                                }
                              }
                            },
                            "required": [
                              "seedClass",
                              "id",
                              "reasons"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "byClass": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "seedClass": {
                                "type": "string",
                                "enum": [
                                  "exemplar-study",
                                  "production-material",
                                  "game-footage",
                                  "walkthrough",
                                  "template"
                                ]
                              },
                              "offered": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "admissible": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "refusedIds": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "seedClass",
                              "offered",
                              "admissible",
                              "refusedIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "emptyClasses": {
                          "maxItems": 5,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "exemplar-study",
                              "production-material",
                              "game-footage",
                              "walkthrough",
                              "template"
                            ]
                          }
                        },
                        "emptyTemplateKinds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "coldStart": {
                          "type": "object",
                          "properties": {
                            "fetchedOnFirstRun": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "notPromisedByInstall": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "carriedByInstall": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "fetchedOnFirstRun",
                            "notPromisedByInstall",
                            "carriedByInstall"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "entries",
                        "withheld",
                        "byClass",
                        "emptyClasses",
                        "emptyTemplateKinds",
                        "coldStart"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "seed"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/sources": {
      "get": {
        "operationId": "sourcesLibrary",
        "parameters": [
          {
            "name": "at",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "library": {
                      "type": "object",
                      "properties": {
                        "generatedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "projectId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "projectName": {
                                "type": "string"
                              },
                              "workId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "title": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "enum": [
                                  "film",
                                  "television",
                                  "animation",
                                  "game",
                                  "audio",
                                  "still-image",
                                  "document",
                                  "mixed-media"
                                ]
                              },
                              "year": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "creators": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "accessPosture": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "metadata-only",
                                  "private"
                                ]
                              },
                              "editionCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "assetCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "trackCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "storage": {
                                "type": "object",
                                "properties": {
                                  "ownedAssets": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "linkOnlyAssets": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "syntheticDeclared": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "sidecars": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "ownedAssets",
                                  "linkOnlyAssets",
                                  "syntheticDeclared",
                                  "sidecars"
                                ],
                                "additionalProperties": false
                              },
                              "rights": {
                                "type": "object",
                                "properties": {
                                  "active": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "expiringSoon": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "expired": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "revoked": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "active",
                                  "expiringSoon",
                                  "expired",
                                  "revoked"
                                ],
                                "additionalProperties": false
                              },
                              "retention": {
                                "type": "object",
                                "properties": {
                                  "sourceRetentionDays": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "derivativeRetentionDays": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "sourceRetentionDays",
                                  "derivativeRetentionDays"
                                ],
                                "additionalProperties": false
                              },
                              "editions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "editionId": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "theatrical-cut",
                                        "directors-cut",
                                        "extended-cut",
                                        "broadcast-version",
                                        "restoration",
                                        "game-build",
                                        "patch",
                                        "remaster",
                                        "other"
                                      ]
                                    },
                                    "sourceMode": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "licensed-stream",
                                        "provider-link-only",
                                        "internal-production-asset",
                                        "unknown"
                                      ]
                                    },
                                    "capabilities": {
                                      "type": "object",
                                      "properties": {
                                        "bytesInWorkspace": {
                                          "type": "boolean"
                                        },
                                        "frameExtraction": {
                                          "type": "boolean"
                                        },
                                        "localExport": {
                                          "type": "boolean"
                                        },
                                        "playback": {
                                          "type": "string",
                                          "enum": [
                                            "local",
                                            "streamed",
                                            "provider-only",
                                            "restricted"
                                          ]
                                        },
                                        "summary": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "bytesInWorkspace",
                                        "frameExtraction",
                                        "localExport",
                                        "playback",
                                        "summary"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "label": {
                                      "type": "string"
                                    },
                                    "primaryLanguage": {
                                      "type": "string"
                                    },
                                    "platform": {
                                      "type": "string"
                                    },
                                    "buildNumber": {
                                      "type": "string"
                                    },
                                    "patchVersion": {
                                      "type": "string"
                                    },
                                    "region": {
                                      "type": "string"
                                    },
                                    "assetCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "trackCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "editionId",
                                    "kind",
                                    "capabilities",
                                    "label",
                                    "primaryLanguage",
                                    "assetCount",
                                    "trackCount"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "lastUpdatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "projectId",
                              "projectName",
                              "workId",
                              "title",
                              "medium",
                              "creators",
                              "accessPosture",
                              "editionCount",
                              "assetCount",
                              "trackCount",
                              "storage",
                              "rights",
                              "retention",
                              "editions",
                              "lastUpdatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "totalsByMedium": {
                          "type": "object",
                          "properties": {
                            "film": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "television": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "animation": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "game": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "audio": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "still-image": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "document": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "mixed-media": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "film",
                            "television",
                            "animation",
                            "game",
                            "audio",
                            "still-image",
                            "document",
                            "mixed-media"
                          ],
                          "additionalProperties": false
                        },
                        "totals": {
                          "type": "object",
                          "properties": {
                            "projects": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "works": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "editions": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "assets": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "metadataOnly": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "privateSources": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "expiringRights": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "projects",
                            "works",
                            "editions",
                            "assets",
                            "metadataOnly",
                            "privateSources",
                            "expiringRights"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "generatedAt",
                        "sources",
                        "totalsByMedium",
                        "totals"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "library"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/hierarchy": {
      "get": {
        "operationId": "sourceHierarchy",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "hierarchy": {
                      "type": "object",
                      "properties": {
                        "workId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "title": {
                          "type": "string"
                        },
                        "editions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "theatrical-cut",
                                  "directors-cut",
                                  "extended-cut",
                                  "broadcast-version",
                                  "restoration",
                                  "game-build",
                                  "patch",
                                  "remaster",
                                  "other"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "assets": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "assetId": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "file",
                                        "stream-reference",
                                        "transcript",
                                        "subtitle",
                                        "still",
                                        "telemetry-bundle",
                                        "document",
                                        "commentary",
                                        "project-asset",
                                        "scene"
                                      ]
                                    },
                                    "label": {
                                      "type": "string"
                                    },
                                    "media": {
                                      "type": "object",
                                      "properties": {
                                        "ownership": {
                                          "type": "string",
                                          "enum": [
                                            "referenced-object",
                                            "provider-linked"
                                          ]
                                        },
                                        "ref": {
                                          "type": "string",
                                          "minLength": 1
                                        },
                                        "contentHash": {
                                          "anyOf": [
                                            {
                                              "type": "string"
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        },
                                        "domainNativeRef": {
                                          "anyOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "domain": {
                                                  "type": "string",
                                                  "pattern": "^[a-z][a-z0-9-]*$"
                                                },
                                                "kind": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "nativeId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 512
                                                },
                                                "nativeVersion": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 160
                                                }
                                              },
                                              "required": [
                                                "domain",
                                                "kind",
                                                "nativeId"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "ownership",
                                        "ref",
                                        "contentHash",
                                        "domainNativeRef"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "tracks": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "trackId": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "kind": {
                                            "type": "string",
                                            "enum": [
                                              "video",
                                              "audio",
                                              "subtitle",
                                              "transcript",
                                              "telemetry",
                                              "camera",
                                              "animation",
                                              "gameplay",
                                              "commentary",
                                              "custom"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "trackId",
                                          "kind"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "assetId",
                                    "kind",
                                    "label",
                                    "media",
                                    "tracks"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "segments": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "segmentId": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "reel",
                                        "act",
                                        "chapter",
                                        "sequence",
                                        "scene",
                                        "shot",
                                        "take",
                                        "beat",
                                        "line",
                                        "session",
                                        "level",
                                        "checkpoint",
                                        "encounter",
                                        "round",
                                        "phase",
                                        "action",
                                        "state-transition",
                                        "custom"
                                      ]
                                    },
                                    "label": {
                                      "type": "string"
                                    },
                                    "reviewState": {
                                      "type": "string",
                                      "enum": [
                                        "suggested",
                                        "accepted",
                                        "corrected",
                                        "contested",
                                        "rejected",
                                        "superseded"
                                      ]
                                    },
                                    "authorKind": {
                                      "type": "string",
                                      "enum": [
                                        "human",
                                        "model",
                                        "imported-system",
                                        "collaborative-group"
                                      ]
                                    },
                                    "corrections": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "enum": [
                                              "locator",
                                              "kind",
                                              "label",
                                              "parent",
                                              "lifecycle"
                                            ]
                                          },
                                          "correctedBy": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "reason": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "occurredAt": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "from": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "to": {
                                            "type": "string",
                                            "minLength": 1
                                          }
                                        },
                                        "required": [
                                          "field",
                                          "correctedBy",
                                          "reason",
                                          "occurredAt"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "segmentId",
                                    "kind",
                                    "label",
                                    "reviewState",
                                    "authorKind",
                                    "corrections"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "editionId",
                              "kind",
                              "label",
                              "assets",
                              "segments"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "editionCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "assetCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "trackCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "segmentCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "workId",
                        "title",
                        "editions",
                        "editionCount",
                        "assetCount",
                        "trackCount",
                        "segmentCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "hierarchy"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}": {
      "get": {
        "operationId": "getProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "projectId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "projectId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons": {
      "post": {
        "operationId": "createComparison",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "researchQuestionText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "researchQuestionId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "inclusionLogic": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "exclusions": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "members": {
                    "minItems": 2,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "role": {
                          "type": "string",
                          "enum": [
                            "example",
                            "counterexample"
                          ]
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "intake": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "enum": [
                                "manual",
                                "search",
                                "atlas",
                                "notebook",
                                "graph"
                              ]
                            },
                            "sourceRecordKind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "sourceRecordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "source",
                            "sourceRecordKind",
                            "sourceRecordId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "role",
                        "anchorId",
                        "rationale",
                        "orderKey"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "alignments": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "memberIndexA": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "memberIndexB": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "frameOffsetB": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "memberIndexA",
                        "memberIndexB",
                        "frameOffsetB"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "syncMarkers": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "basis": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "absolute-time"
                                },
                                "timeBaseFpsNumerator": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "timeBaseFpsDenominator": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "kind",
                                "timeBaseFpsNumerator",
                                "timeBaseFpsDenominator"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "normalized-duration"
                                },
                                "informationLoss": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "kind",
                                "informationLoss"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "semantic-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "beat",
                                    "dialogue-line",
                                    "word",
                                    "performance-turn",
                                    "marked-event"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "event",
                                "label"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "motion-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "anticipation",
                                    "contact",
                                    "impact",
                                    "recoil",
                                    "settle",
                                    "recovery"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "narrative-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "reveal",
                                    "reversal",
                                    "decision",
                                    "entrance",
                                    "payoff"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "gameplay-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "input",
                                    "telegraph",
                                    "hit",
                                    "failure",
                                    "recovery",
                                    "checkpoint",
                                    "reward"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "manual"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "offsets": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "offsetFrames": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "memberIndex",
                              "offsetFrames"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "provenance": {
                          "type": "object",
                          "properties": {
                            "authorKind": {
                              "type": "string",
                              "enum": [
                                "human",
                                "analyzer"
                              ]
                            },
                            "authorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "confidence": {
                              "type": "string",
                              "enum": [
                                "exact",
                                "high",
                                "moderate",
                                "low"
                              ]
                            },
                            "uncertainty": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "sourceVersions": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "editionId": {
                                    "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)$"
                                  },
                                  "technicalRevisionHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  }
                                },
                                "required": [
                                  "editionId",
                                  "technicalRevisionHash"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "parameters": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "acceptedCorrections": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "memberIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "previousOffsetFrames": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  "correctedOffsetFrames": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "correctedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "correctedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "memberIndex",
                                  "previousOffsetFrames",
                                  "correctedOffsetFrames",
                                  "reason",
                                  "correctedBy",
                                  "correctedAt"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "authorKind",
                            "authorId",
                            "confidence",
                            "sourceVersions",
                            "acceptedCorrections"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "name",
                        "orderKey",
                        "basis",
                        "offsets",
                        "provenance"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "side-by-side",
                      "stacked",
                      "overlay",
                      "matrix",
                      "timeline"
                    ]
                  },
                  "corpusBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "collaboratorUserIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  }
                },
                "required": [
                  "projectId",
                  "researchQuestionText",
                  "inclusionLogic",
                  "members",
                  "layout",
                  "corpusBoundary"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "researchQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "researchQuestionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionLogic": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "members": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "rationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "intake": {
                                "type": "object",
                                "properties": {
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "manual",
                                      "search",
                                      "atlas",
                                      "notebook",
                                      "graph"
                                    ]
                                  },
                                  "sourceRecordKind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sourceRecordId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "source",
                                  "sourceRecordKind",
                                  "sourceRecordId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "role",
                              "anchorId",
                              "rationale",
                              "orderKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "alignments": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndexA": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "memberIndexB": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "frameOffsetB": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "memberIndexA",
                              "memberIndexB",
                              "frameOffsetB"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syncMarkers": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "basis": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "absolute-time"
                                      },
                                      "timeBaseFpsNumerator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "timeBaseFpsDenominator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "timeBaseFpsNumerator",
                                      "timeBaseFpsDenominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "normalized-duration"
                                      },
                                      "informationLoss": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "informationLoss"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "semantic-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "beat",
                                          "dialogue-line",
                                          "word",
                                          "performance-turn",
                                          "marked-event"
                                        ]
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "motion-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "anticipation",
                                          "contact",
                                          "impact",
                                          "recoil",
                                          "settle",
                                          "recovery"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "narrative-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "reveal",
                                          "reversal",
                                          "decision",
                                          "entrance",
                                          "payoff"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "gameplay-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "input",
                                          "telegraph",
                                          "hit",
                                          "failure",
                                          "recovery",
                                          "checkpoint",
                                          "reward"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "manual"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "offsets": {
                                "minItems": 2,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "offsetFrames": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "offsetFrames"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "human",
                                      "analyzer"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "exact",
                                      "high",
                                      "moderate",
                                      "low"
                                    ]
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "parameters": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "acceptedCorrections": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "memberIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "previousOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "correctedOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        },
                                        "correctedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "correctedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "memberIndex",
                                        "previousOffsetFrames",
                                        "correctedOffsetFrames",
                                        "reason",
                                        "correctedBy",
                                        "correctedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "confidence",
                                  "sourceVersions",
                                  "acceptedCorrections"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "orderKey",
                              "basis",
                              "offsets",
                              "provenance"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "side-by-side",
                            "stacked",
                            "overlay",
                            "matrix",
                            "timeline"
                          ]
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "snapshot": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "frozenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "frozenBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "pinnedRevisions": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "editionId": {
                                        "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)$"
                                      },
                                      "technicalRevisionHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      }
                                    },
                                    "required": [
                                      "editionId",
                                      "technicalRevisionHash"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "frozenAt",
                                "frozenBy",
                                "pinnedRevisions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "researchQuestionId",
                        "researchQuestionText",
                        "inclusionLogic",
                        "exclusions",
                        "members",
                        "alignments",
                        "layout",
                        "corpusBoundary",
                        "collaboratorUserIds",
                        "snapshot"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "comparison"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "comparison": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "researchQuestionId": null,
                    "researchQuestionText": "How is depth staged?",
                    "inclusionLogic": "Battle sequences with three readable planes.",
                    "exclusions": [],
                    "members": [
                      {
                        "role": "example",
                        "anchorId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                        "rationale": "Three planes.",
                        "orderKey": 0,
                        "intake": {
                          "source": "search",
                          "sourceRecordKind": "interpretation",
                          "sourceRecordId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                        }
                      },
                      {
                        "role": "counterexample",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                        "rationale": "Flat staging.",
                        "orderKey": 1
                      }
                    ],
                    "alignments": [],
                    "syncMarkers": [
                      {
                        "name": "the cavalry crests the ridge",
                        "orderKey": 0,
                        "basis": {
                          "kind": "absolute-time",
                          "timeBaseFpsNumerator": 24000,
                          "timeBaseFpsDenominator": 1001
                        },
                        "offsets": [
                          {
                            "memberIndex": 0,
                            "offsetFrames": 0
                          },
                          {
                            "memberIndex": 1,
                            "offsetFrames": 18
                          }
                        ],
                        "provenance": {
                          "authorKind": "human",
                          "authorId": "analyst-1",
                          "confidence": "high",
                          "uncertainty": "The counterexample cut is soft; ±2 frames.",
                          "sourceVersions": [
                            {
                              "editionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                              "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                            }
                          ],
                          "acceptedCorrections": []
                        }
                      }
                    ],
                    "layout": "side-by-side",
                    "corpusBoundary": "Two films.",
                    "collaboratorUserIds": [],
                    "snapshot": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons/{comparisonId}/update": {
      "post": {
        "operationId": "updateComparison",
        "parameters": [
          {
            "name": "comparisonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf435a4a-88f7-4b7a-abc0-c257d411d251"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "inclusionLogic": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "exclusions": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "members": {
                    "minItems": 2,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "role": {
                          "type": "string",
                          "enum": [
                            "example",
                            "counterexample"
                          ]
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "intake": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "enum": [
                                "manual",
                                "search",
                                "atlas",
                                "notebook",
                                "graph"
                              ]
                            },
                            "sourceRecordKind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "sourceRecordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "source",
                            "sourceRecordKind",
                            "sourceRecordId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "role",
                        "anchorId",
                        "rationale",
                        "orderKey"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "alignments": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "memberIndexA": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "memberIndexB": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "frameOffsetB": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "memberIndexA",
                        "memberIndexB",
                        "frameOffsetB"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "syncMarkers": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "basis": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "absolute-time"
                                },
                                "timeBaseFpsNumerator": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "timeBaseFpsDenominator": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "kind",
                                "timeBaseFpsNumerator",
                                "timeBaseFpsDenominator"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "normalized-duration"
                                },
                                "informationLoss": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "kind",
                                "informationLoss"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "semantic-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "beat",
                                    "dialogue-line",
                                    "word",
                                    "performance-turn",
                                    "marked-event"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "event",
                                "label"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "motion-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "anticipation",
                                    "contact",
                                    "impact",
                                    "recoil",
                                    "settle",
                                    "recovery"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "narrative-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "reveal",
                                    "reversal",
                                    "decision",
                                    "entrance",
                                    "payoff"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "gameplay-event"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "input",
                                    "telegraph",
                                    "hit",
                                    "failure",
                                    "recovery",
                                    "checkpoint",
                                    "reward"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "event"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "manual"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "offsets": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "offsetFrames": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "memberIndex",
                              "offsetFrames"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "provenance": {
                          "type": "object",
                          "properties": {
                            "authorKind": {
                              "type": "string",
                              "enum": [
                                "human",
                                "analyzer"
                              ]
                            },
                            "authorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "confidence": {
                              "type": "string",
                              "enum": [
                                "exact",
                                "high",
                                "moderate",
                                "low"
                              ]
                            },
                            "uncertainty": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "sourceVersions": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "editionId": {
                                    "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)$"
                                  },
                                  "technicalRevisionHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  }
                                },
                                "required": [
                                  "editionId",
                                  "technicalRevisionHash"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "parameters": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "acceptedCorrections": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "memberIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "previousOffsetFrames": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  "correctedOffsetFrames": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "correctedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "correctedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "memberIndex",
                                  "previousOffsetFrames",
                                  "correctedOffsetFrames",
                                  "reason",
                                  "correctedBy",
                                  "correctedAt"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "authorKind",
                            "authorId",
                            "confidence",
                            "sourceVersions",
                            "acceptedCorrections"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "name",
                        "orderKey",
                        "basis",
                        "offsets",
                        "provenance"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "side-by-side",
                      "stacked",
                      "overlay",
                      "matrix",
                      "timeline"
                    ]
                  },
                  "collaboratorUserIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "researchQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "researchQuestionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionLogic": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "members": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "rationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "intake": {
                                "type": "object",
                                "properties": {
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "manual",
                                      "search",
                                      "atlas",
                                      "notebook",
                                      "graph"
                                    ]
                                  },
                                  "sourceRecordKind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sourceRecordId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "source",
                                  "sourceRecordKind",
                                  "sourceRecordId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "role",
                              "anchorId",
                              "rationale",
                              "orderKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "alignments": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndexA": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "memberIndexB": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "frameOffsetB": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "memberIndexA",
                              "memberIndexB",
                              "frameOffsetB"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syncMarkers": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "basis": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "absolute-time"
                                      },
                                      "timeBaseFpsNumerator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "timeBaseFpsDenominator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "timeBaseFpsNumerator",
                                      "timeBaseFpsDenominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "normalized-duration"
                                      },
                                      "informationLoss": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "informationLoss"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "semantic-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "beat",
                                          "dialogue-line",
                                          "word",
                                          "performance-turn",
                                          "marked-event"
                                        ]
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "motion-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "anticipation",
                                          "contact",
                                          "impact",
                                          "recoil",
                                          "settle",
                                          "recovery"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "narrative-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "reveal",
                                          "reversal",
                                          "decision",
                                          "entrance",
                                          "payoff"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "gameplay-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "input",
                                          "telegraph",
                                          "hit",
                                          "failure",
                                          "recovery",
                                          "checkpoint",
                                          "reward"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "manual"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "offsets": {
                                "minItems": 2,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "offsetFrames": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "offsetFrames"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "human",
                                      "analyzer"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "exact",
                                      "high",
                                      "moderate",
                                      "low"
                                    ]
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "parameters": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "acceptedCorrections": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "memberIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "previousOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "correctedOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        },
                                        "correctedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "correctedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "memberIndex",
                                        "previousOffsetFrames",
                                        "correctedOffsetFrames",
                                        "reason",
                                        "correctedBy",
                                        "correctedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "confidence",
                                  "sourceVersions",
                                  "acceptedCorrections"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "orderKey",
                              "basis",
                              "offsets",
                              "provenance"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "side-by-side",
                            "stacked",
                            "overlay",
                            "matrix",
                            "timeline"
                          ]
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "snapshot": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "frozenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "frozenBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "pinnedRevisions": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "editionId": {
                                        "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)$"
                                      },
                                      "technicalRevisionHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      }
                                    },
                                    "required": [
                                      "editionId",
                                      "technicalRevisionHash"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "frozenAt",
                                "frozenBy",
                                "pinnedRevisions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "researchQuestionId",
                        "researchQuestionText",
                        "inclusionLogic",
                        "exclusions",
                        "members",
                        "alignments",
                        "layout",
                        "corpusBoundary",
                        "collaboratorUserIds",
                        "snapshot"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "comparison"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "comparison": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "researchQuestionId": null,
                    "researchQuestionText": "How is depth staged?",
                    "inclusionLogic": "Battle sequences with three readable planes.",
                    "exclusions": [],
                    "members": [
                      {
                        "role": "example",
                        "anchorId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                        "rationale": "Three planes.",
                        "orderKey": 0,
                        "intake": {
                          "source": "search",
                          "sourceRecordKind": "interpretation",
                          "sourceRecordId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                        }
                      },
                      {
                        "role": "counterexample",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                        "rationale": "Flat staging.",
                        "orderKey": 1
                      }
                    ],
                    "alignments": [],
                    "syncMarkers": [
                      {
                        "name": "the cavalry crests the ridge",
                        "orderKey": 0,
                        "basis": {
                          "kind": "absolute-time",
                          "timeBaseFpsNumerator": 24000,
                          "timeBaseFpsDenominator": 1001
                        },
                        "offsets": [
                          {
                            "memberIndex": 0,
                            "offsetFrames": 0
                          },
                          {
                            "memberIndex": 1,
                            "offsetFrames": 18
                          }
                        ],
                        "provenance": {
                          "authorKind": "human",
                          "authorId": "analyst-1",
                          "confidence": "high",
                          "uncertainty": "The counterexample cut is soft; ±2 frames.",
                          "sourceVersions": [
                            {
                              "editionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                              "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                            }
                          ],
                          "acceptedCorrections": []
                        }
                      }
                    ],
                    "layout": "side-by-side",
                    "corpusBoundary": "Two films.",
                    "collaboratorUserIds": [],
                    "snapshot": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons/{comparisonId}/freeze": {
      "post": {
        "operationId": "freezeComparison",
        "parameters": [
          {
            "name": "comparisonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf435a4a-88f7-4b7a-abc0-c257d411d251"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "researchQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "researchQuestionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionLogic": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "members": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "rationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "intake": {
                                "type": "object",
                                "properties": {
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "manual",
                                      "search",
                                      "atlas",
                                      "notebook",
                                      "graph"
                                    ]
                                  },
                                  "sourceRecordKind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sourceRecordId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "source",
                                  "sourceRecordKind",
                                  "sourceRecordId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "role",
                              "anchorId",
                              "rationale",
                              "orderKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "alignments": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndexA": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "memberIndexB": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "frameOffsetB": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "memberIndexA",
                              "memberIndexB",
                              "frameOffsetB"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syncMarkers": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "basis": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "absolute-time"
                                      },
                                      "timeBaseFpsNumerator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "timeBaseFpsDenominator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "timeBaseFpsNumerator",
                                      "timeBaseFpsDenominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "normalized-duration"
                                      },
                                      "informationLoss": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "informationLoss"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "semantic-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "beat",
                                          "dialogue-line",
                                          "word",
                                          "performance-turn",
                                          "marked-event"
                                        ]
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "motion-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "anticipation",
                                          "contact",
                                          "impact",
                                          "recoil",
                                          "settle",
                                          "recovery"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "narrative-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "reveal",
                                          "reversal",
                                          "decision",
                                          "entrance",
                                          "payoff"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "gameplay-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "input",
                                          "telegraph",
                                          "hit",
                                          "failure",
                                          "recovery",
                                          "checkpoint",
                                          "reward"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "manual"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "offsets": {
                                "minItems": 2,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "offsetFrames": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "offsetFrames"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "human",
                                      "analyzer"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "exact",
                                      "high",
                                      "moderate",
                                      "low"
                                    ]
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "parameters": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "acceptedCorrections": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "memberIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "previousOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "correctedOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        },
                                        "correctedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "correctedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "memberIndex",
                                        "previousOffsetFrames",
                                        "correctedOffsetFrames",
                                        "reason",
                                        "correctedBy",
                                        "correctedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "confidence",
                                  "sourceVersions",
                                  "acceptedCorrections"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "orderKey",
                              "basis",
                              "offsets",
                              "provenance"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "side-by-side",
                            "stacked",
                            "overlay",
                            "matrix",
                            "timeline"
                          ]
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "snapshot": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "frozenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "frozenBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "pinnedRevisions": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "editionId": {
                                        "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)$"
                                      },
                                      "technicalRevisionHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      }
                                    },
                                    "required": [
                                      "editionId",
                                      "technicalRevisionHash"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "frozenAt",
                                "frozenBy",
                                "pinnedRevisions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "researchQuestionId",
                        "researchQuestionText",
                        "inclusionLogic",
                        "exclusions",
                        "members",
                        "alignments",
                        "layout",
                        "corpusBoundary",
                        "collaboratorUserIds",
                        "snapshot"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "comparison"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "comparison": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "researchQuestionId": null,
                    "researchQuestionText": "How is depth staged?",
                    "inclusionLogic": "Battle sequences with three readable planes.",
                    "exclusions": [],
                    "members": [
                      {
                        "role": "example",
                        "anchorId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                        "rationale": "Three planes.",
                        "orderKey": 0,
                        "intake": {
                          "source": "search",
                          "sourceRecordKind": "interpretation",
                          "sourceRecordId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                        }
                      },
                      {
                        "role": "counterexample",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                        "rationale": "Flat staging.",
                        "orderKey": 1
                      }
                    ],
                    "alignments": [],
                    "syncMarkers": [
                      {
                        "name": "the cavalry crests the ridge",
                        "orderKey": 0,
                        "basis": {
                          "kind": "absolute-time",
                          "timeBaseFpsNumerator": 24000,
                          "timeBaseFpsDenominator": 1001
                        },
                        "offsets": [
                          {
                            "memberIndex": 0,
                            "offsetFrames": 0
                          },
                          {
                            "memberIndex": 1,
                            "offsetFrames": 18
                          }
                        ],
                        "provenance": {
                          "authorKind": "human",
                          "authorId": "analyst-1",
                          "confidence": "high",
                          "uncertainty": "The counterexample cut is soft; ±2 frames.",
                          "sourceVersions": [
                            {
                              "editionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                              "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                            }
                          ],
                          "acceptedCorrections": []
                        }
                      }
                    ],
                    "layout": "side-by-side",
                    "corpusBoundary": "Two films.",
                    "collaboratorUserIds": [],
                    "snapshot": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons/{comparisonId}/align-correction": {
      "post": {
        "operationId": "recordAlignmentCorrection",
        "parameters": [
          {
            "name": "comparisonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf435a4a-88f7-4b7a-abc0-c257d411d251"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "markerIndex": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "memberIndex": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "correctedOffsetFrames": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "markerIndex",
                  "memberIndex",
                  "correctedOffsetFrames",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "researchQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "researchQuestionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionLogic": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "members": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "rationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "intake": {
                                "type": "object",
                                "properties": {
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "manual",
                                      "search",
                                      "atlas",
                                      "notebook",
                                      "graph"
                                    ]
                                  },
                                  "sourceRecordKind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sourceRecordId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "source",
                                  "sourceRecordKind",
                                  "sourceRecordId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "role",
                              "anchorId",
                              "rationale",
                              "orderKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "alignments": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndexA": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "memberIndexB": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "frameOffsetB": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "memberIndexA",
                              "memberIndexB",
                              "frameOffsetB"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syncMarkers": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "basis": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "absolute-time"
                                      },
                                      "timeBaseFpsNumerator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "timeBaseFpsDenominator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "timeBaseFpsNumerator",
                                      "timeBaseFpsDenominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "normalized-duration"
                                      },
                                      "informationLoss": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "informationLoss"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "semantic-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "beat",
                                          "dialogue-line",
                                          "word",
                                          "performance-turn",
                                          "marked-event"
                                        ]
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "motion-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "anticipation",
                                          "contact",
                                          "impact",
                                          "recoil",
                                          "settle",
                                          "recovery"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "narrative-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "reveal",
                                          "reversal",
                                          "decision",
                                          "entrance",
                                          "payoff"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "gameplay-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "input",
                                          "telegraph",
                                          "hit",
                                          "failure",
                                          "recovery",
                                          "checkpoint",
                                          "reward"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "manual"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "offsets": {
                                "minItems": 2,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "offsetFrames": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "offsetFrames"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "human",
                                      "analyzer"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "exact",
                                      "high",
                                      "moderate",
                                      "low"
                                    ]
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "parameters": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "acceptedCorrections": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "memberIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "previousOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "correctedOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        },
                                        "correctedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "correctedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "memberIndex",
                                        "previousOffsetFrames",
                                        "correctedOffsetFrames",
                                        "reason",
                                        "correctedBy",
                                        "correctedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "confidence",
                                  "sourceVersions",
                                  "acceptedCorrections"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "orderKey",
                              "basis",
                              "offsets",
                              "provenance"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "side-by-side",
                            "stacked",
                            "overlay",
                            "matrix",
                            "timeline"
                          ]
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "snapshot": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "frozenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "frozenBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "pinnedRevisions": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "editionId": {
                                        "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)$"
                                      },
                                      "technicalRevisionHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      }
                                    },
                                    "required": [
                                      "editionId",
                                      "technicalRevisionHash"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "frozenAt",
                                "frozenBy",
                                "pinnedRevisions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "researchQuestionId",
                        "researchQuestionText",
                        "inclusionLogic",
                        "exclusions",
                        "members",
                        "alignments",
                        "layout",
                        "corpusBoundary",
                        "collaboratorUserIds",
                        "snapshot"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "comparison"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "comparison": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "researchQuestionId": null,
                    "researchQuestionText": "How is depth staged?",
                    "inclusionLogic": "Battle sequences with three readable planes.",
                    "exclusions": [],
                    "members": [
                      {
                        "role": "example",
                        "anchorId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                        "rationale": "Three planes.",
                        "orderKey": 0,
                        "intake": {
                          "source": "search",
                          "sourceRecordKind": "interpretation",
                          "sourceRecordId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                        }
                      },
                      {
                        "role": "counterexample",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                        "rationale": "Flat staging.",
                        "orderKey": 1
                      }
                    ],
                    "alignments": [],
                    "syncMarkers": [
                      {
                        "name": "the cavalry crests the ridge",
                        "orderKey": 0,
                        "basis": {
                          "kind": "absolute-time",
                          "timeBaseFpsNumerator": 24000,
                          "timeBaseFpsDenominator": 1001
                        },
                        "offsets": [
                          {
                            "memberIndex": 0,
                            "offsetFrames": 0
                          },
                          {
                            "memberIndex": 1,
                            "offsetFrames": 18
                          }
                        ],
                        "provenance": {
                          "authorKind": "human",
                          "authorId": "analyst-1",
                          "confidence": "high",
                          "uncertainty": "The counterexample cut is soft; ±2 frames.",
                          "sourceVersions": [
                            {
                              "editionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                              "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                            }
                          ],
                          "acceptedCorrections": []
                        }
                      }
                    ],
                    "layout": "side-by-side",
                    "corpusBoundary": "Two films.",
                    "collaboratorUserIds": [],
                    "snapshot": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons/{comparisonId}": {
      "get": {
        "operationId": "getComparison",
        "parameters": [
          {
            "name": "comparisonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf435a4a-88f7-4b7a-abc0-c257d411d251"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "researchQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "researchQuestionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionLogic": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "members": {
                          "minItems": 2,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "rationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "intake": {
                                "type": "object",
                                "properties": {
                                  "source": {
                                    "type": "string",
                                    "enum": [
                                      "manual",
                                      "search",
                                      "atlas",
                                      "notebook",
                                      "graph"
                                    ]
                                  },
                                  "sourceRecordKind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sourceRecordId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "source",
                                  "sourceRecordKind",
                                  "sourceRecordId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "role",
                              "anchorId",
                              "rationale",
                              "orderKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "alignments": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "memberIndexA": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "memberIndexB": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "frameOffsetB": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "memberIndexA",
                              "memberIndexB",
                              "frameOffsetB"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syncMarkers": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "orderKey": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "basis": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "absolute-time"
                                      },
                                      "timeBaseFpsNumerator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "timeBaseFpsDenominator": {
                                        "type": "integer",
                                        "exclusiveMinimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "timeBaseFpsNumerator",
                                      "timeBaseFpsDenominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "normalized-duration"
                                      },
                                      "informationLoss": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "informationLoss"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "semantic-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "beat",
                                          "dialogue-line",
                                          "word",
                                          "performance-turn",
                                          "marked-event"
                                        ]
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "motion-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "anticipation",
                                          "contact",
                                          "impact",
                                          "recoil",
                                          "settle",
                                          "recovery"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "narrative-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "reveal",
                                          "reversal",
                                          "decision",
                                          "entrance",
                                          "payoff"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "gameplay-event"
                                      },
                                      "event": {
                                        "type": "string",
                                        "enum": [
                                          "input",
                                          "telegraph",
                                          "hit",
                                          "failure",
                                          "recovery",
                                          "checkpoint",
                                          "reward"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "event"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "manual"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "offsets": {
                                "minItems": 2,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "offsetFrames": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "offsetFrames"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "human",
                                      "analyzer"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "exact",
                                      "high",
                                      "moderate",
                                      "low"
                                    ]
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "parameters": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "acceptedCorrections": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "memberIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "previousOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "correctedOffsetFrames": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        },
                                        "correctedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "correctedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "memberIndex",
                                        "previousOffsetFrames",
                                        "correctedOffsetFrames",
                                        "reason",
                                        "correctedBy",
                                        "correctedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "confidence",
                                  "sourceVersions",
                                  "acceptedCorrections"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "orderKey",
                              "basis",
                              "offsets",
                              "provenance"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "layout": {
                          "type": "string",
                          "enum": [
                            "side-by-side",
                            "stacked",
                            "overlay",
                            "matrix",
                            "timeline"
                          ]
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "snapshot": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "frozenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "frozenBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "pinnedRevisions": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "editionId": {
                                        "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)$"
                                      },
                                      "technicalRevisionHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      }
                                    },
                                    "required": [
                                      "editionId",
                                      "technicalRevisionHash"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "frozenAt",
                                "frozenBy",
                                "pinnedRevisions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "researchQuestionId",
                        "researchQuestionText",
                        "inclusionLogic",
                        "exclusions",
                        "members",
                        "alignments",
                        "layout",
                        "corpusBoundary",
                        "collaboratorUserIds",
                        "snapshot"
                      ],
                      "additionalProperties": false
                    },
                    "frozen": {
                      "type": "boolean"
                    },
                    "exportMode": {
                      "type": "string",
                      "enum": [
                        "citable",
                        "draft"
                      ]
                    }
                  },
                  "required": [
                    "comparison",
                    "frozen",
                    "exportMode"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/comparisons": {
      "get": {
        "operationId": "listComparisons",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparisons": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "researchQuestionId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "researchQuestionText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "inclusionLogic": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "exclusions": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "members": {
                            "minItems": 2,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "role": {
                                  "type": "string",
                                  "enum": [
                                    "example",
                                    "counterexample"
                                  ]
                                },
                                "anchorId": {
                                  "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)$"
                                },
                                "rationale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "orderKey": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "intake": {
                                  "type": "object",
                                  "properties": {
                                    "source": {
                                      "type": "string",
                                      "enum": [
                                        "manual",
                                        "search",
                                        "atlas",
                                        "notebook",
                                        "graph"
                                      ]
                                    },
                                    "sourceRecordKind": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "sourceRecordId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "source",
                                    "sourceRecordKind",
                                    "sourceRecordId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "role",
                                "anchorId",
                                "rationale",
                                "orderKey"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "alignments": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "memberIndexA": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "memberIndexB": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "frameOffsetB": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "memberIndexA",
                                "memberIndexB",
                                "frameOffsetB"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "syncMarkers": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "orderKey": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "basis": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "absolute-time"
                                        },
                                        "timeBaseFpsNumerator": {
                                          "type": "integer",
                                          "exclusiveMinimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "timeBaseFpsDenominator": {
                                          "type": "integer",
                                          "exclusiveMinimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "timeBaseFpsNumerator",
                                        "timeBaseFpsDenominator"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "normalized-duration"
                                        },
                                        "informationLoss": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "informationLoss"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "semantic-event"
                                        },
                                        "event": {
                                          "type": "string",
                                          "enum": [
                                            "beat",
                                            "dialogue-line",
                                            "word",
                                            "performance-turn",
                                            "marked-event"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "event",
                                        "label"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "motion-event"
                                        },
                                        "event": {
                                          "type": "string",
                                          "enum": [
                                            "anticipation",
                                            "contact",
                                            "impact",
                                            "recoil",
                                            "settle",
                                            "recovery"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "event"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "narrative-event"
                                        },
                                        "event": {
                                          "type": "string",
                                          "enum": [
                                            "reveal",
                                            "reversal",
                                            "decision",
                                            "entrance",
                                            "payoff"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "event"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "gameplay-event"
                                        },
                                        "event": {
                                          "type": "string",
                                          "enum": [
                                            "input",
                                            "telegraph",
                                            "hit",
                                            "failure",
                                            "recovery",
                                            "checkpoint",
                                            "reward"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "event"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "manual"
                                        }
                                      },
                                      "required": [
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "offsets": {
                                  "minItems": 2,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "memberIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "offsetFrames": {
                                        "type": "integer",
                                        "minimum": -9007199254740991,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "memberIndex",
                                      "offsetFrames"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "authorKind": {
                                      "type": "string",
                                      "enum": [
                                        "human",
                                        "analyzer"
                                      ]
                                    },
                                    "authorId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "confidence": {
                                      "type": "string",
                                      "enum": [
                                        "exact",
                                        "high",
                                        "moderate",
                                        "low"
                                      ]
                                    },
                                    "uncertainty": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    },
                                    "sourceVersions": {
                                      "minItems": 1,
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "editionId": {
                                            "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)$"
                                          },
                                          "technicalRevisionHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          }
                                        },
                                        "required": [
                                          "editionId",
                                          "technicalRevisionHash"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "parameters": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    },
                                    "acceptedCorrections": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "memberIndex": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "previousOffsetFrames": {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          "correctedOffsetFrames": {
                                            "type": "integer",
                                            "minimum": -9007199254740991,
                                            "maximum": 9007199254740991
                                          },
                                          "reason": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "correctedBy": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "correctedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "memberIndex",
                                          "previousOffsetFrames",
                                          "correctedOffsetFrames",
                                          "reason",
                                          "correctedBy",
                                          "correctedAt"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "authorKind",
                                    "authorId",
                                    "confidence",
                                    "sourceVersions",
                                    "acceptedCorrections"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "name",
                                "orderKey",
                                "basis",
                                "offsets",
                                "provenance"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "layout": {
                            "type": "string",
                            "enum": [
                              "side-by-side",
                              "stacked",
                              "overlay",
                              "matrix",
                              "timeline"
                            ]
                          },
                          "corpusBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "collaboratorUserIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "snapshot": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "frozenAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "frozenBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "pinnedRevisions": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "editionId": {
                                          "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)$"
                                        },
                                        "technicalRevisionHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        }
                                      },
                                      "required": [
                                        "editionId",
                                        "technicalRevisionHash"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "frozenAt",
                                  "frozenBy",
                                  "pinnedRevisions"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "researchQuestionId",
                          "researchQuestionText",
                          "inclusionLogic",
                          "exclusions",
                          "members",
                          "alignments",
                          "layout",
                          "corpusBoundary",
                          "collaboratorUserIds",
                          "snapshot"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "comparisons"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-collections": {
      "post": {
        "operationId": "createInspirationCollection",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "creativeQuestion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "targetProjects": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "yemaya-production",
                            "instrumented-game"
                          ]
                        },
                        "projectRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "kind",
                        "projectRef",
                        "label"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "targetConceptIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "intendedAudienceEffect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "exclusions": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "views": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "canvas",
                            "grid",
                            "list",
                            "timeline"
                          ]
                        },
                        "presentationState": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        },
                        "presentation": {
                          "type": "object",
                          "properties": {
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "updatedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "viewport": {
                              "type": "object",
                              "properties": {
                                "width": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                },
                                "height": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                },
                                "zoom": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                }
                              },
                              "required": [
                                "width",
                                "height",
                                "zoom"
                              ],
                              "additionalProperties": false
                            },
                            "placements": {
                              "maxItems": 5000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "node": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  },
                                  "pinned": {
                                    "type": "boolean"
                                  },
                                  "scale": {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 20
                                  },
                                  "z": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 10000
                                  }
                                },
                                "required": [
                                  "node",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "groups": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "memberNodes": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "corpus",
                                            "work",
                                            "edition",
                                            "sequence",
                                            "scene",
                                            "encounter",
                                            "shot",
                                            "beat",
                                            "frame",
                                            "image",
                                            "region",
                                            "entity",
                                            "material",
                                            "palette",
                                            "pose",
                                            "motion",
                                            "sound",
                                            "transcript",
                                            "runtime-event",
                                            "document-passage",
                                            "claim",
                                            "principle",
                                            "original-concept",
                                            "creative-decision",
                                            "production-artifact",
                                            "anchor",
                                            "segment",
                                            "comparison-set",
                                            "inspiration-item"
                                          ]
                                        },
                                        "refId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "refId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "colorHex": {
                                    "type": "string",
                                    "pattern": "^#[0-9a-f]{6}$"
                                  },
                                  "collapsed": {
                                    "type": "boolean"
                                  },
                                  "id": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "name",
                                  "memberNodes",
                                  "id"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "labels": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "id",
                                  "text",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "superseded": {
                              "default": [],
                              "maxItems": 1000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "node": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  },
                                  "placedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "placedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "node",
                                  "x",
                                  "y",
                                  "placedBy",
                                  "placedAt"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "revision",
                            "updatedBy",
                            "updatedAt",
                            "viewport",
                            "placements",
                            "groups",
                            "labels"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "name",
                        "kind",
                        "presentationState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "collaboratorUserIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "diversityPosture": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "projectId",
                  "creativeQuestion",
                  "intendedAudienceEffect",
                  "scope",
                  "diversityPosture"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "creativeQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "targetProjects": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "targetConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "intendedAudienceEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "views": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "canvas",
                                  "grid",
                                  "list",
                                  "timeline"
                                ]
                              },
                              "presentationState": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              },
                              "presentation": {
                                "type": "object",
                                "properties": {
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "updatedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "viewport": {
                                    "type": "object",
                                    "properties": {
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "zoom": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      }
                                    },
                                    "required": [
                                      "width",
                                      "height",
                                      "zoom"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "placements": {
                                    "maxItems": 5000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "pinned": {
                                          "type": "boolean"
                                        },
                                        "scale": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 20
                                        },
                                        "z": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 10000
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "groups": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "memberNodes": {
                                          "minItems": 1,
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "enum": [
                                                  "corpus",
                                                  "work",
                                                  "edition",
                                                  "sequence",
                                                  "scene",
                                                  "encounter",
                                                  "shot",
                                                  "beat",
                                                  "frame",
                                                  "image",
                                                  "region",
                                                  "entity",
                                                  "material",
                                                  "palette",
                                                  "pose",
                                                  "motion",
                                                  "sound",
                                                  "transcript",
                                                  "runtime-event",
                                                  "document-passage",
                                                  "claim",
                                                  "principle",
                                                  "original-concept",
                                                  "creative-decision",
                                                  "production-artifact",
                                                  "anchor",
                                                  "segment",
                                                  "comparison-set",
                                                  "inspiration-item"
                                                ]
                                              },
                                              "refId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "refId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "colorHex": {
                                          "type": "string",
                                          "pattern": "^#[0-9a-f]{6}$"
                                        },
                                        "collapsed": {
                                          "type": "boolean"
                                        },
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "memberNodes",
                                        "id"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "labels": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "text": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "text",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "superseded": {
                                    "default": [],
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "placedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "placedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y",
                                        "placedBy",
                                        "placedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "revision",
                                  "updatedBy",
                                  "updatedAt",
                                  "viewport",
                                  "placements",
                                  "groups",
                                  "labels",
                                  "superseded"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "kind",
                              "presentationState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "diversityPosture": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "creativeQuestion",
                        "targetProjects",
                        "targetConceptIds",
                        "intendedAudienceEffect",
                        "scope",
                        "exclusions",
                        "views",
                        "collaboratorUserIds",
                        "diversityPosture"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-collections/{collectionId}/update": {
      "post": {
        "operationId": "updateInspirationCollection",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "creativeQuestion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "targetProjects": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "yemaya-production",
                            "instrumented-game"
                          ]
                        },
                        "projectRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "kind",
                        "projectRef",
                        "label"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "targetConceptIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "intendedAudienceEffect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "exclusions": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "views": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "canvas",
                            "grid",
                            "list",
                            "timeline"
                          ]
                        },
                        "presentationState": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        },
                        "presentation": {
                          "type": "object",
                          "properties": {
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "updatedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "viewport": {
                              "type": "object",
                              "properties": {
                                "width": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                },
                                "height": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                },
                                "zoom": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                }
                              },
                              "required": [
                                "width",
                                "height",
                                "zoom"
                              ],
                              "additionalProperties": false
                            },
                            "placements": {
                              "maxItems": 5000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "node": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  },
                                  "pinned": {
                                    "type": "boolean"
                                  },
                                  "scale": {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 20
                                  },
                                  "z": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 10000
                                  }
                                },
                                "required": [
                                  "node",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "groups": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "memberNodes": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "corpus",
                                            "work",
                                            "edition",
                                            "sequence",
                                            "scene",
                                            "encounter",
                                            "shot",
                                            "beat",
                                            "frame",
                                            "image",
                                            "region",
                                            "entity",
                                            "material",
                                            "palette",
                                            "pose",
                                            "motion",
                                            "sound",
                                            "transcript",
                                            "runtime-event",
                                            "document-passage",
                                            "claim",
                                            "principle",
                                            "original-concept",
                                            "creative-decision",
                                            "production-artifact",
                                            "anchor",
                                            "segment",
                                            "comparison-set",
                                            "inspiration-item"
                                          ]
                                        },
                                        "refId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "refId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "colorHex": {
                                    "type": "string",
                                    "pattern": "^#[0-9a-f]{6}$"
                                  },
                                  "collapsed": {
                                    "type": "boolean"
                                  },
                                  "id": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "name",
                                  "memberNodes",
                                  "id"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "labels": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "id",
                                  "text",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "superseded": {
                              "default": [],
                              "maxItems": 1000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "node": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  },
                                  "placedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "placedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "node",
                                  "x",
                                  "y",
                                  "placedBy",
                                  "placedAt"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "revision",
                            "updatedBy",
                            "updatedAt",
                            "viewport",
                            "placements",
                            "groups",
                            "labels"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "name",
                        "kind",
                        "presentationState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "collaboratorUserIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "diversityPosture": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "viewPresentationEdit": {
                    "type": "object",
                    "properties": {
                      "viewName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "edit": {
                        "type": "object",
                        "properties": {
                          "basedOnRevision": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "editorUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "at": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "viewport": {
                            "type": "object",
                            "properties": {
                              "width": {
                                "type": "number",
                                "exclusiveMinimum": 0
                              },
                              "height": {
                                "type": "number",
                                "exclusiveMinimum": 0
                              },
                              "zoom": {
                                "type": "number",
                                "exclusiveMinimum": 0
                              }
                            },
                            "required": [
                              "width",
                              "height",
                              "zoom"
                            ],
                            "additionalProperties": false
                          },
                          "movedPlacements": {
                            "default": [],
                            "maxItems": 5000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "node": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "corpus",
                                        "work",
                                        "edition",
                                        "sequence",
                                        "scene",
                                        "encounter",
                                        "shot",
                                        "beat",
                                        "frame",
                                        "image",
                                        "region",
                                        "entity",
                                        "material",
                                        "palette",
                                        "pose",
                                        "motion",
                                        "sound",
                                        "transcript",
                                        "runtime-event",
                                        "document-passage",
                                        "claim",
                                        "principle",
                                        "original-concept",
                                        "creative-decision",
                                        "production-artifact",
                                        "anchor",
                                        "segment",
                                        "comparison-set",
                                        "inspiration-item"
                                      ]
                                    },
                                    "refId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "refId"
                                  ],
                                  "additionalProperties": false
                                },
                                "x": {
                                  "type": "number"
                                },
                                "y": {
                                  "type": "number"
                                },
                                "pinned": {
                                  "type": "boolean"
                                },
                                "scale": {
                                  "type": "number",
                                  "exclusiveMinimum": 0,
                                  "maximum": 20
                                },
                                "z": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 10000
                                }
                              },
                              "required": [
                                "node",
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "upsertedGroups": {
                            "default": [],
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "memberNodes": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "colorHex": {
                                  "type": "string",
                                  "pattern": "^#[0-9a-f]{6}$"
                                },
                                "collapsed": {
                                  "type": "boolean"
                                },
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "name",
                                "memberNodes",
                                "id"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "removedGroupIds": {
                            "default": [],
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "upsertedLabels": {
                            "default": [],
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                },
                                "x": {
                                  "type": "number"
                                },
                                "y": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "id",
                                "text",
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "removedLabelIds": {
                            "default": [],
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          }
                        },
                        "required": [
                          "basedOnRevision",
                          "editorUserId",
                          "at"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "viewName",
                      "edit"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "creativeQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "targetProjects": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "targetConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "intendedAudienceEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "views": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "canvas",
                                  "grid",
                                  "list",
                                  "timeline"
                                ]
                              },
                              "presentationState": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              },
                              "presentation": {
                                "type": "object",
                                "properties": {
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "updatedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "viewport": {
                                    "type": "object",
                                    "properties": {
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "zoom": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      }
                                    },
                                    "required": [
                                      "width",
                                      "height",
                                      "zoom"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "placements": {
                                    "maxItems": 5000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "pinned": {
                                          "type": "boolean"
                                        },
                                        "scale": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 20
                                        },
                                        "z": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 10000
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "groups": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "memberNodes": {
                                          "minItems": 1,
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "enum": [
                                                  "corpus",
                                                  "work",
                                                  "edition",
                                                  "sequence",
                                                  "scene",
                                                  "encounter",
                                                  "shot",
                                                  "beat",
                                                  "frame",
                                                  "image",
                                                  "region",
                                                  "entity",
                                                  "material",
                                                  "palette",
                                                  "pose",
                                                  "motion",
                                                  "sound",
                                                  "transcript",
                                                  "runtime-event",
                                                  "document-passage",
                                                  "claim",
                                                  "principle",
                                                  "original-concept",
                                                  "creative-decision",
                                                  "production-artifact",
                                                  "anchor",
                                                  "segment",
                                                  "comparison-set",
                                                  "inspiration-item"
                                                ]
                                              },
                                              "refId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "refId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "colorHex": {
                                          "type": "string",
                                          "pattern": "^#[0-9a-f]{6}$"
                                        },
                                        "collapsed": {
                                          "type": "boolean"
                                        },
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "memberNodes",
                                        "id"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "labels": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "text": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "text",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "superseded": {
                                    "default": [],
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "placedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "placedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y",
                                        "placedBy",
                                        "placedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "revision",
                                  "updatedBy",
                                  "updatedAt",
                                  "viewport",
                                  "placements",
                                  "groups",
                                  "labels",
                                  "superseded"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "kind",
                              "presentationState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "diversityPosture": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "creativeQuestion",
                        "targetProjects",
                        "targetConceptIds",
                        "intendedAudienceEffect",
                        "scope",
                        "exclusions",
                        "views",
                        "collaboratorUserIds",
                        "diversityPosture"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-collections/{collectionId}/items": {
      "post": {
        "operationId": "addInspirationItem",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "anchorId": {
                    "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)$"
                  },
                  "rightsGrantIds": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "relevantAspect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "intendedEffectOrProblem": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "doNotCopyBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "primary-reference",
                      "counterpoint",
                      "mood",
                      "technique",
                      "structure",
                      "avoid"
                    ]
                  },
                  "argumentativeRole": {
                    "type": "string",
                    "enum": [
                      "support",
                      "contrast",
                      "counterexample",
                      "boundary",
                      "precedent",
                      "warning",
                      "unresolved-possibility",
                      "reviewed-extension"
                    ]
                  },
                  "attribution": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "principleId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "studyQuestionId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "culturalContext": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "confidence": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "calibrated"
                          },
                          "value": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "calibration": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "calibrationSetId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "calibrationSetVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "validatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "method",
                              "calibrationSetId",
                              "calibrationSetVersion",
                              "validatedAt"
                            ],
                            "additionalProperties": false
                          },
                          "interval": {
                            "type": "object",
                            "properties": {
                              "lower": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "upper": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "coverage": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "exclusiveMaximum": 1
                              }
                            },
                            "required": [
                              "lower",
                              "upper",
                              "coverage"
                            ],
                            "additionalProperties": false
                          },
                          "applicabilityBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "status",
                          "value",
                          "calibration",
                          "interval",
                          "applicabilityBoundary"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "uncalibrated"
                          },
                          "rawScore": {
                            "type": "number"
                          },
                          "scale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "status",
                          "rawScore",
                          "scale"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "missing"
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "not-applicable",
                              "not-yet-calibrated",
                              "legacy-import",
                              "processor-omitted"
                            ]
                          }
                        },
                        "required": [
                          "status",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "reviewState": {
                    "type": "string",
                    "enum": [
                      "suggested",
                      "accepted",
                      "corrected",
                      "contested",
                      "rejected",
                      "superseded"
                    ]
                  }
                },
                "required": [
                  "anchorId",
                  "rightsGrantIds",
                  "relevantAspect",
                  "intendedEffectOrProblem",
                  "doNotCopyBoundary",
                  "role",
                  "argumentativeRole",
                  "attribution",
                  "confidence"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "item": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "collectionId": {
                          "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)$"
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "relevantAspect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "intendedEffectOrProblem": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "principleId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "studyQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "doNotCopyBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "primary-reference",
                            "counterpoint",
                            "mood",
                            "technique",
                            "structure",
                            "avoid"
                          ]
                        },
                        "argumentativeRole": {
                          "type": "string",
                          "enum": [
                            "support",
                            "contrast",
                            "counterexample",
                            "boundary",
                            "precedent",
                            "warning",
                            "unresolved-possibility",
                            "reviewed-extension"
                          ]
                        },
                        "attribution": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "culturalContext": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "collectionId",
                        "anchorId",
                        "rightsGrantIds",
                        "relevantAspect",
                        "intendedEffectOrProblem",
                        "principleId",
                        "studyQuestionId",
                        "doNotCopyBoundary",
                        "role",
                        "attribution",
                        "confidence",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "item"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-collections/{collectionId}/items/bulk": {
      "post": {
        "operationId": "bulkPinInspirationItems",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "items": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "anchorId": {
                          "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)$"
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "relevantAspect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "intendedEffectOrProblem": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "doNotCopyBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "primary-reference",
                            "counterpoint",
                            "mood",
                            "technique",
                            "structure",
                            "avoid"
                          ]
                        },
                        "argumentativeRole": {
                          "type": "string",
                          "enum": [
                            "support",
                            "contrast",
                            "counterexample",
                            "boundary",
                            "precedent",
                            "warning",
                            "unresolved-possibility",
                            "reviewed-extension"
                          ]
                        },
                        "attribution": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "principleId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "studyQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "culturalContext": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        }
                      },
                      "required": [
                        "anchorId",
                        "rightsGrantIds",
                        "relevantAspect",
                        "intendedEffectOrProblem",
                        "doNotCopyBoundary",
                        "role",
                        "argumentativeRole",
                        "attribution",
                        "confidence"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "items"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "pinned": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "collectionId": {
                            "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)$"
                          },
                          "anchorId": {
                            "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)$"
                          },
                          "rightsGrantIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "relevantAspect": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "intendedEffectOrProblem": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "principleId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "studyQuestionId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "doNotCopyBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "primary-reference",
                              "counterpoint",
                              "mood",
                              "technique",
                              "structure",
                              "avoid"
                            ]
                          },
                          "argumentativeRole": {
                            "type": "string",
                            "enum": [
                              "support",
                              "contrast",
                              "counterexample",
                              "boundary",
                              "precedent",
                              "warning",
                              "unresolved-possibility",
                              "reviewed-extension"
                            ]
                          },
                          "attribution": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "culturalContext": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "collectionId",
                          "anchorId",
                          "rightsGrantIds",
                          "relevantAspect",
                          "intendedEffectOrProblem",
                          "principleId",
                          "studyQuestionId",
                          "doNotCopyBoundary",
                          "role",
                          "attribution",
                          "confidence",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "duplicateSuggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "anchorId": {
                            "type": "string"
                          },
                          "existingItemId": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "already-in-collection",
                              "repeated-in-batch"
                            ]
                          }
                        },
                        "required": [
                          "anchorId",
                          "existingItemId",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "pinned",
                    "duplicateSuggestions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-items/{itemId}/update": {
      "post": {
        "operationId": "updateInspirationItem",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a5b13b08-b535-42fe-a75b-bb1986c12105"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "relevantAspect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "intendedEffectOrProblem": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "doNotCopyBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "primary-reference",
                      "counterpoint",
                      "mood",
                      "technique",
                      "structure",
                      "avoid"
                    ]
                  },
                  "argumentativeRole": {
                    "type": "string",
                    "enum": [
                      "support",
                      "contrast",
                      "counterexample",
                      "boundary",
                      "precedent",
                      "warning",
                      "unresolved-possibility",
                      "reviewed-extension"
                    ]
                  },
                  "principleId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "studyQuestionId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reviewState": {
                    "type": "string",
                    "enum": [
                      "suggested",
                      "accepted",
                      "corrected",
                      "contested",
                      "rejected",
                      "superseded"
                    ]
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "item": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "collectionId": {
                          "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)$"
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "relevantAspect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "intendedEffectOrProblem": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "principleId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "studyQuestionId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "doNotCopyBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "primary-reference",
                            "counterpoint",
                            "mood",
                            "technique",
                            "structure",
                            "avoid"
                          ]
                        },
                        "argumentativeRole": {
                          "type": "string",
                          "enum": [
                            "support",
                            "contrast",
                            "counterexample",
                            "boundary",
                            "precedent",
                            "warning",
                            "unresolved-possibility",
                            "reviewed-extension"
                          ]
                        },
                        "attribution": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "culturalContext": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "collectionId",
                        "anchorId",
                        "rightsGrantIds",
                        "relevantAspect",
                        "intendedEffectOrProblem",
                        "principleId",
                        "studyQuestionId",
                        "doNotCopyBoundary",
                        "role",
                        "attribution",
                        "confidence",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "item"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/inspiration-collections/{collectionId}": {
      "get": {
        "operationId": "getInspirationCollection",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firstIndex",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "creativeQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "targetProjects": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "targetConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "intendedAudienceEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusions": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "views": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "canvas",
                                  "grid",
                                  "list",
                                  "timeline"
                                ]
                              },
                              "presentationState": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              },
                              "presentation": {
                                "type": "object",
                                "properties": {
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "updatedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "viewport": {
                                    "type": "object",
                                    "properties": {
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      },
                                      "zoom": {
                                        "type": "number",
                                        "exclusiveMinimum": 0
                                      }
                                    },
                                    "required": [
                                      "width",
                                      "height",
                                      "zoom"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "placements": {
                                    "maxItems": 5000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "pinned": {
                                          "type": "boolean"
                                        },
                                        "scale": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 20
                                        },
                                        "z": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 10000
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "groups": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "memberNodes": {
                                          "minItems": 1,
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "enum": [
                                                  "corpus",
                                                  "work",
                                                  "edition",
                                                  "sequence",
                                                  "scene",
                                                  "encounter",
                                                  "shot",
                                                  "beat",
                                                  "frame",
                                                  "image",
                                                  "region",
                                                  "entity",
                                                  "material",
                                                  "palette",
                                                  "pose",
                                                  "motion",
                                                  "sound",
                                                  "transcript",
                                                  "runtime-event",
                                                  "document-passage",
                                                  "claim",
                                                  "principle",
                                                  "original-concept",
                                                  "creative-decision",
                                                  "production-artifact",
                                                  "anchor",
                                                  "segment",
                                                  "comparison-set",
                                                  "inspiration-item"
                                                ]
                                              },
                                              "refId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "refId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "colorHex": {
                                          "type": "string",
                                          "pattern": "^#[0-9a-f]{6}$"
                                        },
                                        "collapsed": {
                                          "type": "boolean"
                                        },
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "memberNodes",
                                        "id"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "labels": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "text": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "text",
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "superseded": {
                                    "default": [],
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "node": {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "enum": [
                                                "corpus",
                                                "work",
                                                "edition",
                                                "sequence",
                                                "scene",
                                                "encounter",
                                                "shot",
                                                "beat",
                                                "frame",
                                                "image",
                                                "region",
                                                "entity",
                                                "material",
                                                "palette",
                                                "pose",
                                                "motion",
                                                "sound",
                                                "transcript",
                                                "runtime-event",
                                                "document-passage",
                                                "claim",
                                                "principle",
                                                "original-concept",
                                                "creative-decision",
                                                "production-artifact",
                                                "anchor",
                                                "segment",
                                                "comparison-set",
                                                "inspiration-item"
                                              ]
                                            },
                                            "refId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "refId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "placedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "placedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "node",
                                        "x",
                                        "y",
                                        "placedBy",
                                        "placedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "revision",
                                  "updatedBy",
                                  "updatedAt",
                                  "viewport",
                                  "placements",
                                  "groups",
                                  "labels",
                                  "superseded"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "name",
                              "kind",
                              "presentationState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "collaboratorUserIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "diversityPosture": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "creativeQuestion",
                        "targetProjects",
                        "targetConceptIds",
                        "intendedAudienceEffect",
                        "scope",
                        "exclusions",
                        "views",
                        "collaboratorUserIds",
                        "diversityPosture"
                      ],
                      "additionalProperties": false
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "collectionId": {
                            "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)$"
                          },
                          "anchorId": {
                            "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)$"
                          },
                          "rightsGrantIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "relevantAspect": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "intendedEffectOrProblem": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "principleId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "studyQuestionId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "doNotCopyBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "primary-reference",
                              "counterpoint",
                              "mood",
                              "technique",
                              "structure",
                              "avoid"
                            ]
                          },
                          "argumentativeRole": {
                            "type": "string",
                            "enum": [
                              "support",
                              "contrast",
                              "counterexample",
                              "boundary",
                              "precedent",
                              "warning",
                              "unresolved-possibility",
                              "reviewed-extension"
                            ]
                          },
                          "attribution": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "culturalContext": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "collectionId",
                          "anchorId",
                          "rightsGrantIds",
                          "relevantAspect",
                          "intendedEffectOrProblem",
                          "principleId",
                          "studyQuestionId",
                          "doNotCopyBoundary",
                          "role",
                          "attribution",
                          "confidence",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "displayBundles": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "primary-reference",
                              "counterpoint",
                              "mood",
                              "technique",
                              "structure",
                              "avoid"
                            ]
                          },
                          "attribution": {
                            "type": "string"
                          },
                          "doNotCopyBoundary": {
                            "type": "string"
                          },
                          "relevantAspect": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "itemId",
                          "role",
                          "attribution",
                          "doNotCopyBoundary",
                          "relevantAspect"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "window": {
                      "type": "object",
                      "properties": {
                        "firstIndex": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "surface": {
                          "type": "string",
                          "minLength": 1
                        },
                        "shown": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "total": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "truncated": {
                          "type": "boolean"
                        },
                        "message": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "firstIndex",
                        "surface",
                        "shown",
                        "total",
                        "truncated",
                        "message"
                      ],
                      "additionalProperties": false
                    },
                    "roleCoverage": {
                      "type": "object",
                      "properties": {
                        "present": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "primary-reference",
                              "counterpoint",
                              "mood",
                              "technique",
                              "structure",
                              "avoid"
                            ]
                          }
                        },
                        "missing": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "primary-reference",
                              "counterpoint",
                              "mood",
                              "technique",
                              "structure",
                              "avoid"
                            ]
                          }
                        },
                        "missingPerspective": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "present",
                        "missing",
                        "missingPerspective"
                      ],
                      "additionalProperties": false
                    },
                    "argumentativeCoverage": {
                      "type": "object",
                      "properties": {
                        "present": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "support",
                              "contrast",
                              "counterexample",
                              "boundary",
                              "precedent",
                              "warning",
                              "unresolved-possibility",
                              "reviewed-extension"
                            ]
                          }
                        },
                        "missing": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "support",
                              "contrast",
                              "counterexample",
                              "boundary",
                              "precedent",
                              "warning",
                              "unresolved-possibility",
                              "reviewed-extension"
                            ]
                          }
                        },
                        "unspecifiedItemIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "withoutCritique": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "present",
                        "missing",
                        "unspecifiedItemIds",
                        "withoutCritique"
                      ],
                      "additionalProperties": false
                    },
                    "linkageCoverage": {
                      "type": "object",
                      "properties": {
                        "totalItems": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "linkedToPrinciple": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "linkedToQuestion": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "connected": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "orphanItemIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "connectedRatio": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "totalItems",
                        "linkedToPrinciple",
                        "linkedToQuestion",
                        "connected",
                        "orphanItemIds",
                        "connectedRatio"
                      ],
                      "additionalProperties": false
                    },
                    "concentration": {
                      "type": "object",
                      "properties": {
                        "perSource": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "workId": {
                                "type": "string"
                              },
                              "itemCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "share": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "workId",
                              "itemCount",
                              "share"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "dominant": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "workId": {
                                  "type": "string"
                                },
                                "itemCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "share": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "workId",
                                "itemCount",
                                "share"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "perSource",
                        "dominant",
                        "warnings"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection",
                    "items",
                    "displayBundles",
                    "window",
                    "roleCoverage",
                    "argumentativeCoverage",
                    "linkageCoverage",
                    "concentration"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/inspiration-collections": {
      "get": {
        "operationId": "listInspirationCollections",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collections": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "creativeQuestion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "targetProjects": {
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "yemaya-production",
                                    "instrumented-game"
                                  ]
                                },
                                "projectRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "projectRef",
                                "label"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "targetConceptIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "intendedAudienceEffect": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "exclusions": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "views": {
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "canvas",
                                    "grid",
                                    "list",
                                    "timeline"
                                  ]
                                },
                                "presentationState": {
                                  "type": "object",
                                  "propertyNames": {
                                    "type": "string"
                                  },
                                  "additionalProperties": {}
                                },
                                "presentation": {
                                  "type": "object",
                                  "properties": {
                                    "revision": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "updatedBy": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "updatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "viewport": {
                                      "type": "object",
                                      "properties": {
                                        "width": {
                                          "type": "number",
                                          "exclusiveMinimum": 0
                                        },
                                        "height": {
                                          "type": "number",
                                          "exclusiveMinimum": 0
                                        },
                                        "zoom": {
                                          "type": "number",
                                          "exclusiveMinimum": 0
                                        }
                                      },
                                      "required": [
                                        "width",
                                        "height",
                                        "zoom"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "placements": {
                                      "maxItems": 5000,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "node": {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "enum": [
                                                  "corpus",
                                                  "work",
                                                  "edition",
                                                  "sequence",
                                                  "scene",
                                                  "encounter",
                                                  "shot",
                                                  "beat",
                                                  "frame",
                                                  "image",
                                                  "region",
                                                  "entity",
                                                  "material",
                                                  "palette",
                                                  "pose",
                                                  "motion",
                                                  "sound",
                                                  "transcript",
                                                  "runtime-event",
                                                  "document-passage",
                                                  "claim",
                                                  "principle",
                                                  "original-concept",
                                                  "creative-decision",
                                                  "production-artifact",
                                                  "anchor",
                                                  "segment",
                                                  "comparison-set",
                                                  "inspiration-item"
                                                ]
                                              },
                                              "refId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "refId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "x": {
                                            "type": "number"
                                          },
                                          "y": {
                                            "type": "number"
                                          },
                                          "pinned": {
                                            "type": "boolean"
                                          },
                                          "scale": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 20
                                          },
                                          "z": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 10000
                                          }
                                        },
                                        "required": [
                                          "node",
                                          "x",
                                          "y"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "groups": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "name": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "memberNodes": {
                                            "minItems": 1,
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "enum": [
                                                    "corpus",
                                                    "work",
                                                    "edition",
                                                    "sequence",
                                                    "scene",
                                                    "encounter",
                                                    "shot",
                                                    "beat",
                                                    "frame",
                                                    "image",
                                                    "region",
                                                    "entity",
                                                    "material",
                                                    "palette",
                                                    "pose",
                                                    "motion",
                                                    "sound",
                                                    "transcript",
                                                    "runtime-event",
                                                    "document-passage",
                                                    "claim",
                                                    "principle",
                                                    "original-concept",
                                                    "creative-decision",
                                                    "production-artifact",
                                                    "anchor",
                                                    "segment",
                                                    "comparison-set",
                                                    "inspiration-item"
                                                  ]
                                                },
                                                "refId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "refId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "colorHex": {
                                            "type": "string",
                                            "pattern": "^#[0-9a-f]{6}$"
                                          },
                                          "collapsed": {
                                            "type": "boolean"
                                          },
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          }
                                        },
                                        "required": [
                                          "name",
                                          "memberNodes",
                                          "id"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "labels": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "text": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 500
                                          },
                                          "x": {
                                            "type": "number"
                                          },
                                          "y": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "text",
                                          "x",
                                          "y"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "superseded": {
                                      "default": [],
                                      "maxItems": 1000,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "node": {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "enum": [
                                                  "corpus",
                                                  "work",
                                                  "edition",
                                                  "sequence",
                                                  "scene",
                                                  "encounter",
                                                  "shot",
                                                  "beat",
                                                  "frame",
                                                  "image",
                                                  "region",
                                                  "entity",
                                                  "material",
                                                  "palette",
                                                  "pose",
                                                  "motion",
                                                  "sound",
                                                  "transcript",
                                                  "runtime-event",
                                                  "document-passage",
                                                  "claim",
                                                  "principle",
                                                  "original-concept",
                                                  "creative-decision",
                                                  "production-artifact",
                                                  "anchor",
                                                  "segment",
                                                  "comparison-set",
                                                  "inspiration-item"
                                                ]
                                              },
                                              "refId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "refId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "x": {
                                            "type": "number"
                                          },
                                          "y": {
                                            "type": "number"
                                          },
                                          "placedBy": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "placedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "node",
                                          "x",
                                          "y",
                                          "placedBy",
                                          "placedAt"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "revision",
                                    "updatedBy",
                                    "updatedAt",
                                    "viewport",
                                    "placements",
                                    "groups",
                                    "labels",
                                    "superseded"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "name",
                                "kind",
                                "presentationState"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "collaboratorUserIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "diversityPosture": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "creativeQuestion",
                          "targetProjects",
                          "targetConceptIds",
                          "intendedAudienceEffect",
                          "scope",
                          "exclusions",
                          "views",
                          "collaboratorUserIds",
                          "diversityPosture"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "collections"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/questions": {
      "post": {
        "operationId": "askQuestion",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "questionText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "originatingContext": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "anchorId": {
                        "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)$"
                      },
                      "raisedBy": {
                        "type": "object",
                        "properties": {
                          "workKind": {
                            "type": "string",
                            "enum": [
                              "observation",
                              "comparison",
                              "inspiration-collection",
                              "claim",
                              "exercise",
                              "attempt",
                              "reflection",
                              "decision"
                            ]
                          },
                          "workId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "workKind",
                          "workId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "description"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "questionText",
                  "scope",
                  "originatingContext"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "questionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "under-investigation",
                            "answered",
                            "abandoned"
                          ]
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "originatingContext": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "raisedBy": {
                              "type": "object",
                              "properties": {
                                "workKind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "comparison",
                                    "inspiration-collection",
                                    "claim",
                                    "exercise",
                                    "attempt",
                                    "reflection",
                                    "decision"
                                  ]
                                },
                                "workId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "workKind",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "description"
                          ],
                          "additionalProperties": false
                        },
                        "linkedEvidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "comparisonSetIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "exerciseIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "resolutionHistory": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "evidenceAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "fromState",
                              "toState",
                              "actor",
                              "note",
                              "evidenceAnchorIds",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "questionText",
                        "lifecycle",
                        "scope",
                        "originatingContext",
                        "linkedEvidenceAnchorIds",
                        "comparisonSetIds",
                        "inspirationCollectionIds",
                        "exerciseIds",
                        "resolutionHistory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "question"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "question": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "questionText": "How does Kurosawa keep three planes of action readable?",
                    "lifecycle": "open",
                    "scope": "Seven Samurai battle sequences",
                    "originatingContext": {
                      "description": "Noticed during the final battle."
                    },
                    "linkedEvidenceAnchorIds": [],
                    "comparisonSetIds": [],
                    "inspirationCollectionIds": [],
                    "exerciseIds": [],
                    "resolutionHistory": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/questions": {
      "get": {
        "operationId": "listQuestions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "unanswered",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "questionText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "lifecycle": {
                            "type": "string",
                            "enum": [
                              "open",
                              "under-investigation",
                              "answered",
                              "abandoned"
                            ]
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "originatingContext": {
                            "type": "object",
                            "properties": {
                              "description": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "raisedBy": {
                                "type": "object",
                                "properties": {
                                  "workKind": {
                                    "type": "string",
                                    "enum": [
                                      "observation",
                                      "comparison",
                                      "inspiration-collection",
                                      "claim",
                                      "exercise",
                                      "attempt",
                                      "reflection",
                                      "decision"
                                    ]
                                  },
                                  "workId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "workKind",
                                  "workId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "description"
                            ],
                            "additionalProperties": false
                          },
                          "linkedEvidenceAnchorIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "comparisonSetIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "inspirationCollectionIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "exerciseIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "resolutionHistory": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "fromState": {
                                  "type": "string",
                                  "enum": [
                                    "open",
                                    "under-investigation",
                                    "answered",
                                    "abandoned"
                                  ]
                                },
                                "toState": {
                                  "type": "string",
                                  "enum": [
                                    "open",
                                    "under-investigation",
                                    "answered",
                                    "abandoned"
                                  ]
                                },
                                "actor": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                },
                                "evidenceAnchorIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "fromState",
                                "toState",
                                "actor",
                                "note",
                                "evidenceAnchorIds",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "questionText",
                          "lifecycle",
                          "scope",
                          "originatingContext",
                          "linkedEvidenceAnchorIds",
                          "comparisonSetIds",
                          "inspirationCollectionIds",
                          "exerciseIds",
                          "resolutionHistory"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "questions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/questions/{questionId}": {
      "get": {
        "operationId": "getQuestion",
        "parameters": [
          {
            "name": "questionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5ad3e90b-22de-4226-ab72-cc5ea17889e9"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "questionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "under-investigation",
                            "answered",
                            "abandoned"
                          ]
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "originatingContext": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "raisedBy": {
                              "type": "object",
                              "properties": {
                                "workKind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "comparison",
                                    "inspiration-collection",
                                    "claim",
                                    "exercise",
                                    "attempt",
                                    "reflection",
                                    "decision"
                                  ]
                                },
                                "workId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "workKind",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "description"
                          ],
                          "additionalProperties": false
                        },
                        "linkedEvidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "comparisonSetIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "exerciseIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "resolutionHistory": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "evidenceAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "fromState",
                              "toState",
                              "actor",
                              "note",
                              "evidenceAnchorIds",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "questionText",
                        "lifecycle",
                        "scope",
                        "originatingContext",
                        "linkedEvidenceAnchorIds",
                        "comparisonSetIds",
                        "inspirationCollectionIds",
                        "exerciseIds",
                        "resolutionHistory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "question"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "question": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "questionText": "How does Kurosawa keep three planes of action readable?",
                    "lifecycle": "open",
                    "scope": "Seven Samurai battle sequences",
                    "originatingContext": {
                      "description": "Noticed during the final battle."
                    },
                    "linkedEvidenceAnchorIds": [],
                    "comparisonSetIds": [],
                    "inspirationCollectionIds": [],
                    "exerciseIds": [],
                    "resolutionHistory": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/questions/{questionId}/update": {
      "post": {
        "operationId": "updateQuestion",
        "parameters": [
          {
            "name": "questionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5ad3e90b-22de-4226-ab72-cc5ea17889e9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "questionText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "questionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "under-investigation",
                            "answered",
                            "abandoned"
                          ]
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "originatingContext": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "raisedBy": {
                              "type": "object",
                              "properties": {
                                "workKind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "comparison",
                                    "inspiration-collection",
                                    "claim",
                                    "exercise",
                                    "attempt",
                                    "reflection",
                                    "decision"
                                  ]
                                },
                                "workId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "workKind",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "description"
                          ],
                          "additionalProperties": false
                        },
                        "linkedEvidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "comparisonSetIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "exerciseIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "resolutionHistory": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "evidenceAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "fromState",
                              "toState",
                              "actor",
                              "note",
                              "evidenceAnchorIds",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "questionText",
                        "lifecycle",
                        "scope",
                        "originatingContext",
                        "linkedEvidenceAnchorIds",
                        "comparisonSetIds",
                        "inspirationCollectionIds",
                        "exerciseIds",
                        "resolutionHistory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "question"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "question": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "questionText": "How does Kurosawa keep three planes of action readable?",
                    "lifecycle": "open",
                    "scope": "Seven Samurai battle sequences",
                    "originatingContext": {
                      "description": "Noticed during the final battle."
                    },
                    "linkedEvidenceAnchorIds": [],
                    "comparisonSetIds": [],
                    "inspirationCollectionIds": [],
                    "exerciseIds": [],
                    "resolutionHistory": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/questions/{questionId}/evidence": {
      "post": {
        "operationId": "linkQuestionEvidence",
        "parameters": [
          {
            "name": "questionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5ad3e90b-22de-4226-ab72-cc5ea17889e9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "anchorIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "comparisonSetIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "inspirationCollectionIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "exerciseIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "questionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "under-investigation",
                            "answered",
                            "abandoned"
                          ]
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "originatingContext": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "raisedBy": {
                              "type": "object",
                              "properties": {
                                "workKind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "comparison",
                                    "inspiration-collection",
                                    "claim",
                                    "exercise",
                                    "attempt",
                                    "reflection",
                                    "decision"
                                  ]
                                },
                                "workId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "workKind",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "description"
                          ],
                          "additionalProperties": false
                        },
                        "linkedEvidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "comparisonSetIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "exerciseIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "resolutionHistory": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "evidenceAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "fromState",
                              "toState",
                              "actor",
                              "note",
                              "evidenceAnchorIds",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "questionText",
                        "lifecycle",
                        "scope",
                        "originatingContext",
                        "linkedEvidenceAnchorIds",
                        "comparisonSetIds",
                        "inspirationCollectionIds",
                        "exerciseIds",
                        "resolutionHistory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "question"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "question": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "questionText": "How does Kurosawa keep three planes of action readable?",
                    "lifecycle": "open",
                    "scope": "Seven Samurai battle sequences",
                    "originatingContext": {
                      "description": "Noticed during the final battle."
                    },
                    "linkedEvidenceAnchorIds": [],
                    "comparisonSetIds": [],
                    "inspirationCollectionIds": [],
                    "exerciseIds": [],
                    "resolutionHistory": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/questions/{questionId}/transition": {
      "post": {
        "operationId": "transitionQuestion",
        "parameters": [
          {
            "name": "questionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "5ad3e90b-22de-4226-ab72-cc5ea17889e9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "toState": {
                    "type": "string",
                    "enum": [
                      "open",
                      "under-investigation",
                      "answered",
                      "abandoned"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "evidenceAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "toState",
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "questionText": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "under-investigation",
                            "answered",
                            "abandoned"
                          ]
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "originatingContext": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "raisedBy": {
                              "type": "object",
                              "properties": {
                                "workKind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "comparison",
                                    "inspiration-collection",
                                    "claim",
                                    "exercise",
                                    "attempt",
                                    "reflection",
                                    "decision"
                                  ]
                                },
                                "workId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "workKind",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "description"
                          ],
                          "additionalProperties": false
                        },
                        "linkedEvidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "comparisonSetIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "exerciseIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "resolutionHistory": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "open",
                                  "under-investigation",
                                  "answered",
                                  "abandoned"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "evidenceAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "fromState",
                              "toState",
                              "actor",
                              "note",
                              "evidenceAnchorIds",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "questionText",
                        "lifecycle",
                        "scope",
                        "originatingContext",
                        "linkedEvidenceAnchorIds",
                        "comparisonSetIds",
                        "inspirationCollectionIds",
                        "exerciseIds",
                        "resolutionHistory"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "question"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "question": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "questionText": "How does Kurosawa keep three planes of action readable?",
                    "lifecycle": "open",
                    "scope": "Seven Samurai battle sequences",
                    "originatingContext": {
                      "description": "Noticed during the final battle."
                    },
                    "linkedEvidenceAnchorIds": [],
                    "comparisonSetIds": [],
                    "inspirationCollectionIds": [],
                    "exerciseIds": [],
                    "resolutionHistory": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/update": {
      "post": {
        "operationId": "updateProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "purpose": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/archive": {
      "post": {
        "operationId": "archiveProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/restore": {
      "post": {
        "operationId": "restoreProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/members/{targetUserId}": {
      "post": {
        "operationId": "changeMemberRole",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "targetUserId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "role": {
                    "type": "string",
                    "enum": [
                      "owner",
                      "editor",
                      "commenter",
                      "viewer"
                    ]
                  }
                },
                "required": [
                  "role"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "operationId": "removeProjectMember",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "targetUserId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/policy": {
      "post": {
        "operationId": "setProjectPolicy",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "policyGrantIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  }
                },
                "required": [
                  "policyGrantIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/works": {
      "post": {
        "operationId": "registerWork",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "medium": {
                    "type": "string",
                    "enum": [
                      "film",
                      "television",
                      "animation",
                      "game",
                      "audio",
                      "still-image",
                      "document",
                      "mixed-media"
                    ]
                  },
                  "year": {
                    "type": "integer",
                    "minimum": 1870,
                    "maximum": 2100
                  },
                  "creators": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    }
                  }
                },
                "required": [
                  "title",
                  "medium"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "work": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "medium": {
                          "type": "string",
                          "enum": [
                            "film",
                            "television",
                            "animation",
                            "game",
                            "audio",
                            "still-image",
                            "document",
                            "mixed-media"
                          ]
                        },
                        "year": {
                          "type": "integer",
                          "minimum": 1870,
                          "maximum": 2100
                        },
                        "creators": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "identityCandidates": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "authority": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "externalId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "certainty": {
                                "type": "string",
                                "enum": [
                                  "confirmed",
                                  "probable",
                                  "possible"
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "authority",
                              "externalId",
                              "certainty",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergeHistory": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "absorbedWorkId": {
                                "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)$"
                              },
                              "mergedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "absorbedWorkId",
                              "mergedBy",
                              "reason",
                              "reviewState",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "editionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "restriction": {
                          "type": "object",
                          "properties": {
                            "classification": {
                              "type": "string",
                              "enum": [
                                "restricted",
                                "prohibited"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "classification",
                            "reason",
                            "decidedBy",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        },
                        "sensitivity": {
                          "type": "object",
                          "properties": {
                            "privacyClass": {
                              "type": "string",
                              "enum": [
                                "rehearsal",
                                "audition",
                                "classroom",
                                "mocap",
                                "voice-session",
                                "gameplay-session",
                                "learner-attempt",
                                "review-session"
                              ]
                            },
                            "containsParticipants": {
                              "default": true,
                              "type": "boolean"
                            },
                            "recordedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "recordedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "privacyClass",
                            "containsParticipants",
                            "recordedBy",
                            "recordedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "title",
                        "medium",
                        "creators",
                        "identityCandidates",
                        "mergeHistory",
                        "editionIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "work"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "work": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "title": "Seven Samurai",
                    "medium": "film",
                    "year": 1954,
                    "creators": [
                      "Akira Kurosawa"
                    ],
                    "identityCandidates": [],
                    "mergeHistory": [],
                    "editionIds": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}": {
      "get": {
        "operationId": "sourceDetail",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "work": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "medium": {
                          "type": "string",
                          "enum": [
                            "film",
                            "television",
                            "animation",
                            "game",
                            "audio",
                            "still-image",
                            "document",
                            "mixed-media"
                          ]
                        },
                        "year": {
                          "type": "integer",
                          "minimum": 1870,
                          "maximum": 2100
                        },
                        "creators": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "identityCandidates": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "authority": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "externalId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "certainty": {
                                "type": "string",
                                "enum": [
                                  "confirmed",
                                  "probable",
                                  "possible"
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "authority",
                              "externalId",
                              "certainty",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergeHistory": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "absorbedWorkId": {
                                "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)$"
                              },
                              "mergedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "absorbedWorkId",
                              "mergedBy",
                              "reason",
                              "reviewState",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "editionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "restriction": {
                          "type": "object",
                          "properties": {
                            "classification": {
                              "type": "string",
                              "enum": [
                                "restricted",
                                "prohibited"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "classification",
                            "reason",
                            "decidedBy",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        },
                        "sensitivity": {
                          "type": "object",
                          "properties": {
                            "privacyClass": {
                              "type": "string",
                              "enum": [
                                "rehearsal",
                                "audition",
                                "classroom",
                                "mocap",
                                "voice-session",
                                "gameplay-session",
                                "learner-attempt",
                                "review-session"
                              ]
                            },
                            "containsParticipants": {
                              "default": true,
                              "type": "boolean"
                            },
                            "recordedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "recordedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "privacyClass",
                            "containsParticipants",
                            "recordedBy",
                            "recordedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "title",
                        "medium",
                        "creators",
                        "identityCandidates",
                        "mergeHistory",
                        "editionIds"
                      ],
                      "additionalProperties": false
                    },
                    "editions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "edition": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "workId": {
                                "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)$"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "theatrical-cut",
                                  "directors-cut",
                                  "extended-cut",
                                  "broadcast-version",
                                  "restoration",
                                  "game-build",
                                  "patch",
                                  "remaster",
                                  "other"
                                ]
                              },
                              "sourceMode": {
                                "type": "string",
                                "enum": [
                                  "file",
                                  "licensed-stream",
                                  "provider-link-only",
                                  "internal-production-asset",
                                  "unknown"
                                ]
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "platform": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "buildNumber": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "patchVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "region": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "primaryLanguage": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "frameRate": {
                                "type": "object",
                                "properties": {
                                  "numerator": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 240000
                                  },
                                  "denominator": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1001
                                  }
                                },
                                "required": [
                                  "numerator",
                                  "denominator"
                                ],
                                "additionalProperties": false
                              },
                              "aspectRatio": {
                                "type": "object",
                                "properties": {
                                  "horizontal": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "vertical": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "horizontal",
                                  "vertical"
                                ],
                                "additionalProperties": false
                              },
                              "colorSpace": {
                                "type": "string",
                                "enum": [
                                  "bt709",
                                  "bt2020",
                                  "srgb",
                                  "p3",
                                  "rec601",
                                  "unknown"
                                ]
                              },
                              "dynamicRange": {
                                "type": "string",
                                "enum": [
                                  "sdr",
                                  "hdr10",
                                  "dolby-vision",
                                  "hlg",
                                  "unknown"
                                ]
                              },
                              "audioTracks": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "language": {
                                      "type": "string",
                                      "minLength": 2,
                                      "maxLength": 35
                                    },
                                    "layout": {
                                      "type": "string",
                                      "enum": [
                                        "mono",
                                        "stereo",
                                        "5.1",
                                        "7.1",
                                        "atmos",
                                        "other"
                                      ]
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "original",
                                        "dub",
                                        "commentary",
                                        "descriptive-audio"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "language",
                                    "layout",
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "subtitleTracks": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "language": {
                                      "type": "string",
                                      "minLength": 2,
                                      "maxLength": 35
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "subtitles",
                                        "closed-captions",
                                        "sdh",
                                        "forced-narrative"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "language",
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "technicalRevision": {
                                "type": "object",
                                "properties": {
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "byteSize": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "recordedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "contentHash",
                                  "recordedAt"
                                ],
                                "additionalProperties": false
                              },
                              "durationFrames": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "gameCapture": {
                                "type": "object",
                                "properties": {
                                  "mods": {
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "captureConfiguration": {
                                    "type": "object",
                                    "properties": {
                                      "resolution": {
                                        "type": "string",
                                        "pattern": "^\\d{3,5}x\\d{3,5}$"
                                      },
                                      "captureFrameRate": {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 240000
                                          },
                                          "denominator": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 1001
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "inputOverlay": {
                                        "type": "boolean"
                                      },
                                      "audioCaptured": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "resolution",
                                      "captureFrameRate",
                                      "inputOverlay",
                                      "audioCaptured"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "settings": {
                                    "type": "object",
                                    "propertyNames": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "device": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "network": {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "enum": [
                                          "offline",
                                          "lan",
                                          "online-peer-to-peer",
                                          "online-server"
                                        ]
                                      },
                                      "region": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "accessibility": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  }
                                },
                                "required": [
                                  "mods",
                                  "captureConfiguration",
                                  "settings",
                                  "device",
                                  "accessibility"
                                ],
                                "additionalProperties": false
                              },
                              "instrumentedSession": {
                                "type": "object",
                                "properties": {
                                  "sessionId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "connectorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "buildContentManifest": {
                                    "type": "object",
                                    "properties": {
                                      "contentManifestHash": {
                                        "type": "string",
                                        "pattern": "^sha256:[0-9a-f]{64}$"
                                      },
                                      "platform": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "buildNumber": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "patchVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      }
                                    },
                                    "required": [
                                      "contentManifestHash",
                                      "platform",
                                      "buildNumber",
                                      "patchVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "clockMapping": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "deterministic-replay"
                                          }
                                        },
                                        "required": [
                                          "kind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "video-clock-mapping"
                                          },
                                          "uncertaintyMs": {
                                            "type": "number",
                                            "minimum": 0
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "uncertaintyMs"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "replayReferences": {
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "domain": {
                                          "type": "string",
                                          "pattern": "^[a-z][a-z0-9-]*$"
                                        },
                                        "kind": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "nativeId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 512
                                        },
                                        "nativeVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "domain",
                                        "kind",
                                        "nativeId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "telemetrySchemas": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "stream": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "schemaRef": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "version": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 60
                                        }
                                      },
                                      "required": [
                                        "stream",
                                        "schemaRef",
                                        "version"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "privacyPolicy": {
                                    "type": "object",
                                    "properties": {
                                      "capturedCategories": {
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        }
                                      },
                                      "scrubbedCategories": {
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        }
                                      }
                                    },
                                    "required": [
                                      "capturedCategories",
                                      "scrubbedCategories"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "sourceAuthorityGrantId": {
                                    "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)$"
                                  },
                                  "signature": {
                                    "type": "object",
                                    "properties": {
                                      "algorithm": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 60
                                      },
                                      "keyId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "signatureB64": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                      },
                                      "signedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "canonicalization": {
                                        "type": "string",
                                        "const": "sorted-json-v1"
                                      }
                                    },
                                    "required": [
                                      "algorithm",
                                      "keyId",
                                      "signatureB64",
                                      "signedAt",
                                      "canonicalization"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "sessionId",
                                  "buildContentManifest",
                                  "clockMapping",
                                  "replayReferences",
                                  "telemetrySchemas",
                                  "privacyPolicy",
                                  "sourceAuthorityGrantId"
                                ],
                                "additionalProperties": false
                              },
                              "projectArtifactLinks": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "asset",
                                        "level",
                                        "animation-graph",
                                        "behavior-tree",
                                        "data-table",
                                        "source-project",
                                        "version"
                                      ]
                                    },
                                    "nativeId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1024
                                    },
                                    "engine": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "readAtRevision": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ownership": {
                                      "type": "string",
                                      "enum": [
                                        "creator-owned",
                                        "explicitly-authorized",
                                        "studied-only",
                                        "extracted-commercial"
                                      ]
                                    },
                                    "authorizationEvidenceRef": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1024
                                    },
                                    "linkedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "linkedByUserId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "nativeId",
                                    "engine",
                                    "readAtRevision",
                                    "ownership",
                                    "linkedAt",
                                    "linkedByUserId"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "workId",
                              "kind",
                              "label",
                              "primaryLanguage",
                              "audioTracks",
                              "subtitleTracks",
                              "technicalRevision"
                            ],
                            "additionalProperties": false
                          },
                          "assets": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "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)$"
                                },
                                "envelope": {
                                  "type": "object",
                                  "properties": {
                                    "schemaVersion": {
                                      "type": "string",
                                      "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                    },
                                    "tenantId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "projectId": {
                                      "anyOf": [
                                        {
                                          "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)$"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "createdBy": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "human"
                                            },
                                            "userId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "userId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "model"
                                            },
                                            "modelId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "modelVersion": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 120
                                            },
                                            "analysisRunId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "modelId",
                                            "modelVersion"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "imported-system"
                                            },
                                            "systemId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "importBatchId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "systemId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "collaborative-group"
                                            },
                                            "groupId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            },
                                            "memberUserIds": {
                                              "maxItems": 500,
                                              "type": "array",
                                              "items": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 160
                                              }
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "groupId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "createdAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "updatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revision": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "supersedesRevision": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "supersededByRevision": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "provenance": {
                                      "type": "object",
                                      "properties": {
                                        "system": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "context": {
                                          "type": "string",
                                          "maxLength": 500
                                        }
                                      },
                                      "required": [
                                        "system"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "deletionState": {
                                      "type": "string",
                                      "enum": [
                                        "active",
                                        "soft-deleted",
                                        "tombstoned",
                                        "legal-hold"
                                      ]
                                    },
                                    "changeReason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "schemaVersion",
                                    "tenantId",
                                    "projectId",
                                    "createdBy",
                                    "createdAt",
                                    "updatedAt",
                                    "revision",
                                    "supersedesRevision",
                                    "supersededByRevision",
                                    "provenance",
                                    "deletionState"
                                  ],
                                  "additionalProperties": false
                                },
                                "editionId": {
                                  "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)$"
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "file",
                                    "stream-reference",
                                    "transcript",
                                    "subtitle",
                                    "still",
                                    "telemetry-bundle",
                                    "document",
                                    "commentary",
                                    "project-asset",
                                    "scene"
                                  ]
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "storage": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "storageKind": {
                                          "type": "string",
                                          "const": "object-store"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "byteSize": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "contentType": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "storageKind",
                                        "objectKey",
                                        "contentHash",
                                        "byteSize",
                                        "contentType"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "storageKind": {
                                          "type": "string",
                                          "const": "provider-link"
                                        },
                                        "provider": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "deepLink": {
                                          "type": "string",
                                          "maxLength": 2048,
                                          "format": "uri"
                                        },
                                        "lastVerifiedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "storageKind",
                                        "provider",
                                        "deepLink",
                                        "lastVerifiedAt"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "rightsGrantIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "trackIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "nativeRef": {
                                  "type": "object",
                                  "properties": {
                                    "domain": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "nativeId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 512
                                    },
                                    "nativeVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "domain",
                                    "kind",
                                    "nativeId"
                                  ],
                                  "additionalProperties": false
                                },
                                "sidecars": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "object": {
                                        "type": "object",
                                        "properties": {
                                          "storageKind": {
                                            "type": "string",
                                            "const": "object-store"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "byteSize": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "contentType": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "storageKind",
                                          "objectKey",
                                          "contentHash",
                                          "byteSize",
                                          "contentType"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [
                                      "label",
                                      "object"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "syntheticMedia": {
                                  "type": "object",
                                  "properties": {
                                    "disposition": {
                                      "type": "string",
                                      "enum": [
                                        "ai-generated",
                                        "ai-modified",
                                        "not-ai",
                                        "indeterminate"
                                      ]
                                    },
                                    "basis": {
                                      "type": "string",
                                      "enum": [
                                        "creator-declared",
                                        "provider-declared",
                                        "detected"
                                      ]
                                    },
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    },
                                    "confidence": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "status": {
                                              "type": "string",
                                              "const": "calibrated"
                                            },
                                            "value": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "calibration": {
                                              "type": "object",
                                              "properties": {
                                                "method": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "calibrationSetId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                },
                                                "calibrationSetVersion": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "validatedAt": {
                                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                }
                                              },
                                              "required": [
                                                "method",
                                                "calibrationSetId",
                                                "calibrationSetVersion",
                                                "validatedAt"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "interval": {
                                              "type": "object",
                                              "properties": {
                                                "lower": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "upper": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "coverage": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "exclusiveMaximum": 1
                                                }
                                              },
                                              "required": [
                                                "lower",
                                                "upper",
                                                "coverage"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "applicabilityBoundary": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 1000
                                            }
                                          },
                                          "required": [
                                            "status",
                                            "value",
                                            "calibration",
                                            "interval",
                                            "applicabilityBoundary"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "status": {
                                              "type": "string",
                                              "const": "uncalibrated"
                                            },
                                            "rawScore": {
                                              "type": "number"
                                            },
                                            "scale": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "status",
                                            "rawScore",
                                            "scale"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "status": {
                                              "type": "string",
                                              "const": "missing"
                                            },
                                            "reason": {
                                              "type": "string",
                                              "enum": [
                                                "not-applicable",
                                                "not-yet-calibrated",
                                                "legacy-import",
                                                "processor-omitted"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "status",
                                            "reason"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "limitations": {
                                      "maxItems": 20,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                      }
                                    },
                                    "reviewStatus": {
                                      "type": "string",
                                      "enum": [
                                        "unreviewed",
                                        "accepted",
                                        "contested"
                                      ]
                                    },
                                    "reviewer": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reviewedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "determinedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "disposition",
                                    "basis",
                                    "method",
                                    "confidence",
                                    "limitations",
                                    "reviewStatus",
                                    "determinedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "proxyOf": {
                                  "type": "object",
                                  "properties": {
                                    "masterAssetId": {
                                      "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)$"
                                    },
                                    "masterTrackId": {
                                      "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)$"
                                    },
                                    "masterStartFrame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "masterDurationFrames": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 10000000
                                    },
                                    "durationFrames": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 10000000
                                    },
                                    "masterVariableFrameRate": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "masterAssetId",
                                    "masterTrackId",
                                    "masterStartFrame",
                                    "masterDurationFrames",
                                    "durationFrames",
                                    "masterVariableFrameRate"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "id",
                                "envelope",
                                "editionId",
                                "kind",
                                "label",
                                "storage",
                                "rightsGrantIds",
                                "trackIds",
                                "sidecars"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "edition",
                          "assets"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "retention": {
                      "type": "object",
                      "properties": {
                        "sourceRetentionDays": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 3650
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "derivativeRetentionDays": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "sourceRetentionDays",
                        "derivativeRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "work",
                    "editions",
                    "retention"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteWork",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "projectId",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "deletedObjectKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "tombstonedRecords": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "family": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "family",
                          "id"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "sagaId": {
                      "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)$"
                    }
                  },
                  "required": [
                    "deletedObjectKeys",
                    "tombstonedRecords",
                    "sagaId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/impact": {
      "get": {
        "operationId": "sourceImpact",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workId": {
                      "type": "string"
                    },
                    "closure": {
                      "type": "object",
                      "properties": {
                        "origin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "work"
                                },
                                "workId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "kind",
                                "workId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "grant"
                                },
                                "grantId": {
                                  "type": "string"
                                },
                                "workId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "kind",
                                "grantId",
                                "workId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "anchor"
                                },
                                "anchorId": {
                                  "type": "string"
                                },
                                "workId": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "anchorId",
                                "workId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "records": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "family": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "family",
                              "id"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "objectKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "exportReferences": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "exportId": {
                                "type": "string"
                              },
                              "objectKey": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "exportId",
                              "objectKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "notebooks": {
                          "type": "object",
                          "properties": {
                            "checked": {
                              "type": "boolean"
                            },
                            "refs": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "checked",
                            "refs"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "origin",
                        "records",
                        "objectKeys",
                        "exportReferences",
                        "notebooks"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workId",
                    "closure"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/source-candidates": {
      "post": {
        "operationId": "resolveSourceIdentity",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "incoming": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "year": {
                        "type": "integer",
                        "minimum": 1800,
                        "maximum": 2200
                      },
                      "medium": {
                        "type": "string",
                        "enum": [
                          "film",
                          "television",
                          "animation",
                          "game",
                          "audio",
                          "still-image",
                          "document",
                          "mixed-media"
                        ]
                      },
                      "edition": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "theatrical-cut",
                              "directors-cut",
                              "extended-cut",
                              "broadcast-version",
                              "restoration",
                              "game-build",
                              "patch",
                              "remaster",
                              "other"
                            ]
                          },
                          "region": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "primaryLanguage": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "buildNumber": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "patchVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "fingerprintSignature": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4000
                          }
                        },
                        "required": [
                          "kind",
                          "primaryLanguage"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "title",
                      "medium",
                      "edition"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "incoming"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workCandidates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "type": "string"
                          },
                          "titleMatch": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "near"
                            ]
                          },
                          "editionCandidates": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "editionId": {
                                  "type": "string"
                                },
                                "relationship": {
                                  "type": "string",
                                  "enum": [
                                    "same-edition",
                                    "different-master",
                                    "different-cut",
                                    "different-build",
                                    "regional-version",
                                    "localized-version"
                                  ]
                                },
                                "mergeCandidate": {
                                  "type": "boolean"
                                },
                                "reason": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "editionId",
                                "relationship",
                                "mergeCandidate",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "titleMatch",
                          "editionCandidates"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "recommendation": {
                      "type": "string",
                      "enum": [
                        "create-new-work",
                        "attach-new-edition",
                        "review-same-edition-candidate"
                      ]
                    },
                    "keepsDistinct": {
                      "type": "boolean",
                      "const": true
                    },
                    "reasons": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "workCandidates",
                    "recommendation",
                    "keepsDistinct",
                    "reasons"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/rejected-sources": {
      "post": {
        "operationId": "rejectSource",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "candidateRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "candidateRef",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "rejected": {
                      "type": "boolean",
                      "const": true
                    },
                    "candidateRef": {
                      "type": "string"
                    },
                    "at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "rejected",
                    "candidateRef",
                    "at"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/grants": {
      "post": {
        "operationId": "grantRights",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "authority": {
                    "type": "string",
                    "enum": [
                      "creator-owned",
                      "explicit-license",
                      "public-domain",
                      "open-license",
                      "user-declared-reference"
                    ]
                  },
                  "authorityEvidenceRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "holderName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "actions": {
                    "minItems": 1,
                    "maxItems": 12,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "playback",
                        "frame-extraction",
                        "proxy-generation",
                        "transcription",
                        "embedding",
                        "model-analysis",
                        "collaboration",
                        "teaching",
                        "publication",
                        "export",
                        "model-training",
                        "project-transfer"
                      ]
                    }
                  },
                  "territories": {
                    "maxItems": 300,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                    }
                  },
                  "validUntil": {
                    "anyOf": [
                      {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "legalBasis": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "sourceRetentionDays": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3650
                  },
                  "commercialUse": {
                    "type": "boolean"
                  },
                  "maxResolutionPixels": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "maxClipDurationFrames": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "maxQuotationChars": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "storageRegion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "audience": {
                    "type": "string",
                    "enum": [
                      "private",
                      "project",
                      "tenant-internal",
                      "external"
                    ]
                  },
                  "derivativeRetentionDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "projectId",
                  "authority",
                  "authorityEvidenceRef",
                  "holderName",
                  "actions",
                  "legalBasis"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "grant": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "authority": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicit-license",
                            "public-domain",
                            "open-license",
                            "provider-authorization",
                            "user-declared-reference"
                          ]
                        },
                        "authorityEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "parties": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "licensor",
                                  "authorized-party",
                                  "participant"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "contactRef": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "role",
                              "name"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subject": {
                          "type": "object",
                          "properties": {
                            "workId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "assetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        "territories": {
                          "minItems": 1,
                          "maxItems": 300,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reviewBy": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "actions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "limits": {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        "consents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "party": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "analysis",
                                  "sharing",
                                  "teaching",
                                  "publication",
                                  "model-training"
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minor": {
                                "default": false,
                                "type": "boolean"
                              },
                              "guardian": {
                                "type": "object",
                                "properties": {
                                  "guardianName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "relationship": {
                                    "type": "string",
                                    "enum": [
                                      "parent",
                                      "legal-guardian",
                                      "authorized-institution"
                                    ]
                                  },
                                  "authorityEvidenceRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "guardianName",
                                  "relationship",
                                  "authorityEvidenceRef"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "party",
                              "scope",
                              "grantedAt",
                              "evidenceRef",
                              "revokedAt",
                              "minor"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "attributionRequired": {
                          "type": "boolean"
                        },
                        "attributionText": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "legalBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "policyDecision": {
                          "type": "object",
                          "properties": {
                            "outcome": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "approved-with-conditions",
                                "review-required"
                              ]
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "conditions": {
                              "default": [],
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            }
                          },
                          "required": [
                            "outcome",
                            "decidedBy",
                            "decidedAt",
                            "policyRef",
                            "conditions"
                          ],
                          "additionalProperties": false
                        },
                        "reviewer": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviewedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "revocation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revokedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "revokedAt",
                                "revokedBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceRetentionDays": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "authority",
                        "authorityEvidenceRef",
                        "parties",
                        "subject",
                        "territories",
                        "validFrom",
                        "validUntil",
                        "reviewBy",
                        "actions",
                        "limits",
                        "consents",
                        "attributionRequired",
                        "legalBasis",
                        "reviewer",
                        "reviewedAt",
                        "revocation",
                        "sourceRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "grant"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "grant": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "authority": "creator-owned",
                    "authorityEvidenceRef": "tenant-1/projects/own-footage-declaration",
                    "parties": [
                      {
                        "role": "owner",
                        "name": "tenant-1"
                      }
                    ],
                    "subject": {
                      "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                    },
                    "territories": [
                      "WORLDWIDE"
                    ],
                    "validFrom": "2026-01-01T00:00:00+00:00",
                    "validUntil": null,
                    "reviewBy": null,
                    "actions": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription"
                    ],
                    "limits": {
                      "commercialUse": false
                    },
                    "consents": [],
                    "attributionRequired": false,
                    "legalBasis": "Creator-owned material; project policy default (YSD-4006).",
                    "reviewer": "u1",
                    "reviewedAt": "2026-01-01T00:00:00+00:00",
                    "revocation": null,
                    "sourceRetentionDays": 365
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/grants/{grantId}/correct": {
      "post": {
        "operationId": "correctGrant",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "grantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c8cff4c3-3cb6-4dca-a3c6-6a40e4b45ce1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "corrections": {
                    "type": "object",
                    "properties": {
                      "actions": {
                        "minItems": 1,
                        "maxItems": 12,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "playback",
                            "frame-extraction",
                            "proxy-generation",
                            "transcription",
                            "embedding",
                            "model-analysis",
                            "collaboration",
                            "teaching",
                            "publication",
                            "export",
                            "model-training",
                            "project-transfer"
                          ]
                        }
                      },
                      "territories": {
                        "maxItems": 300,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$"
                        }
                      },
                      "legalBasis": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "attributionRequired": {
                        "type": "boolean"
                      },
                      "attributionText": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "reviewBy": {
                        "anyOf": [
                          {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "reason",
                  "corrections"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "grant": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "authority": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicit-license",
                            "public-domain",
                            "open-license",
                            "provider-authorization",
                            "user-declared-reference"
                          ]
                        },
                        "authorityEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "parties": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "licensor",
                                  "authorized-party",
                                  "participant"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "contactRef": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "role",
                              "name"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subject": {
                          "type": "object",
                          "properties": {
                            "workId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "assetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        "territories": {
                          "minItems": 1,
                          "maxItems": 300,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reviewBy": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "actions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "limits": {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        "consents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "party": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "analysis",
                                  "sharing",
                                  "teaching",
                                  "publication",
                                  "model-training"
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minor": {
                                "default": false,
                                "type": "boolean"
                              },
                              "guardian": {
                                "type": "object",
                                "properties": {
                                  "guardianName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "relationship": {
                                    "type": "string",
                                    "enum": [
                                      "parent",
                                      "legal-guardian",
                                      "authorized-institution"
                                    ]
                                  },
                                  "authorityEvidenceRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "guardianName",
                                  "relationship",
                                  "authorityEvidenceRef"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "party",
                              "scope",
                              "grantedAt",
                              "evidenceRef",
                              "revokedAt",
                              "minor"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "attributionRequired": {
                          "type": "boolean"
                        },
                        "attributionText": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "legalBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "policyDecision": {
                          "type": "object",
                          "properties": {
                            "outcome": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "approved-with-conditions",
                                "review-required"
                              ]
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "conditions": {
                              "default": [],
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            }
                          },
                          "required": [
                            "outcome",
                            "decidedBy",
                            "decidedAt",
                            "policyRef",
                            "conditions"
                          ],
                          "additionalProperties": false
                        },
                        "reviewer": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviewedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "revocation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revokedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "revokedAt",
                                "revokedBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceRetentionDays": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "authority",
                        "authorityEvidenceRef",
                        "parties",
                        "subject",
                        "territories",
                        "validFrom",
                        "validUntil",
                        "reviewBy",
                        "actions",
                        "limits",
                        "consents",
                        "attributionRequired",
                        "legalBasis",
                        "reviewer",
                        "reviewedAt",
                        "revocation",
                        "sourceRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "grant"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "grant": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "authority": "creator-owned",
                    "authorityEvidenceRef": "tenant-1/projects/own-footage-declaration",
                    "parties": [
                      {
                        "role": "owner",
                        "name": "tenant-1"
                      }
                    ],
                    "subject": {
                      "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                    },
                    "territories": [
                      "WORLDWIDE"
                    ],
                    "validFrom": "2026-01-01T00:00:00+00:00",
                    "validUntil": null,
                    "reviewBy": null,
                    "actions": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription"
                    ],
                    "limits": {
                      "commercialUse": false
                    },
                    "consents": [],
                    "attributionRequired": false,
                    "legalBasis": "Creator-owned material; project policy default (YSD-4006).",
                    "reviewer": "u1",
                    "reviewedAt": "2026-01-01T00:00:00+00:00",
                    "revocation": null,
                    "sourceRetentionDays": 365
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/grants/{grantId}/renew": {
      "post": {
        "operationId": "renewGrant",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "grantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c8cff4c3-3cb6-4dca-a3c6-6a40e4b45ce1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "validUntil": {
                    "anyOf": [
                      {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reviewBy": {
                    "anyOf": [
                      {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "reason",
                  "validUntil"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "grant": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "authority": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicit-license",
                            "public-domain",
                            "open-license",
                            "provider-authorization",
                            "user-declared-reference"
                          ]
                        },
                        "authorityEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "parties": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "licensor",
                                  "authorized-party",
                                  "participant"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "contactRef": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "role",
                              "name"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subject": {
                          "type": "object",
                          "properties": {
                            "workId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "assetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        "territories": {
                          "minItems": 1,
                          "maxItems": 300,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reviewBy": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "actions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "limits": {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        "consents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "party": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "analysis",
                                  "sharing",
                                  "teaching",
                                  "publication",
                                  "model-training"
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minor": {
                                "default": false,
                                "type": "boolean"
                              },
                              "guardian": {
                                "type": "object",
                                "properties": {
                                  "guardianName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "relationship": {
                                    "type": "string",
                                    "enum": [
                                      "parent",
                                      "legal-guardian",
                                      "authorized-institution"
                                    ]
                                  },
                                  "authorityEvidenceRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "guardianName",
                                  "relationship",
                                  "authorityEvidenceRef"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "party",
                              "scope",
                              "grantedAt",
                              "evidenceRef",
                              "revokedAt",
                              "minor"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "attributionRequired": {
                          "type": "boolean"
                        },
                        "attributionText": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "legalBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "policyDecision": {
                          "type": "object",
                          "properties": {
                            "outcome": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "approved-with-conditions",
                                "review-required"
                              ]
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "conditions": {
                              "default": [],
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            }
                          },
                          "required": [
                            "outcome",
                            "decidedBy",
                            "decidedAt",
                            "policyRef",
                            "conditions"
                          ],
                          "additionalProperties": false
                        },
                        "reviewer": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviewedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "revocation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revokedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "revokedAt",
                                "revokedBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceRetentionDays": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "authority",
                        "authorityEvidenceRef",
                        "parties",
                        "subject",
                        "territories",
                        "validFrom",
                        "validUntil",
                        "reviewBy",
                        "actions",
                        "limits",
                        "consents",
                        "attributionRequired",
                        "legalBasis",
                        "reviewer",
                        "reviewedAt",
                        "revocation",
                        "sourceRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "grant"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "grant": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "authority": "creator-owned",
                    "authorityEvidenceRef": "tenant-1/projects/own-footage-declaration",
                    "parties": [
                      {
                        "role": "owner",
                        "name": "tenant-1"
                      }
                    ],
                    "subject": {
                      "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                    },
                    "territories": [
                      "WORLDWIDE"
                    ],
                    "validFrom": "2026-01-01T00:00:00+00:00",
                    "validUntil": null,
                    "reviewBy": null,
                    "actions": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription"
                    ],
                    "limits": {
                      "commercialUse": false
                    },
                    "consents": [],
                    "attributionRequired": false,
                    "legalBasis": "Creator-owned material; project policy default (YSD-4006).",
                    "reviewer": "u1",
                    "reviewedAt": "2026-01-01T00:00:00+00:00",
                    "revocation": null,
                    "sourceRetentionDays": 365
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/grants/{grantId}/revoke": {
      "post": {
        "operationId": "revokeGrant",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "grantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c8cff4c3-3cb6-4dca-a3c6-6a40e4b45ce1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "grant": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "authority": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicit-license",
                            "public-domain",
                            "open-license",
                            "provider-authorization",
                            "user-declared-reference"
                          ]
                        },
                        "authorityEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "parties": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "licensor",
                                  "authorized-party",
                                  "participant"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "contactRef": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "role",
                              "name"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subject": {
                          "type": "object",
                          "properties": {
                            "workId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "assetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        "territories": {
                          "minItems": 1,
                          "maxItems": 300,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reviewBy": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "actions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "limits": {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        "consents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "party": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "analysis",
                                  "sharing",
                                  "teaching",
                                  "publication",
                                  "model-training"
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minor": {
                                "default": false,
                                "type": "boolean"
                              },
                              "guardian": {
                                "type": "object",
                                "properties": {
                                  "guardianName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "relationship": {
                                    "type": "string",
                                    "enum": [
                                      "parent",
                                      "legal-guardian",
                                      "authorized-institution"
                                    ]
                                  },
                                  "authorityEvidenceRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "guardianName",
                                  "relationship",
                                  "authorityEvidenceRef"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "party",
                              "scope",
                              "grantedAt",
                              "evidenceRef",
                              "revokedAt",
                              "minor"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "attributionRequired": {
                          "type": "boolean"
                        },
                        "attributionText": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "legalBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "policyDecision": {
                          "type": "object",
                          "properties": {
                            "outcome": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "approved-with-conditions",
                                "review-required"
                              ]
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "conditions": {
                              "default": [],
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            }
                          },
                          "required": [
                            "outcome",
                            "decidedBy",
                            "decidedAt",
                            "policyRef",
                            "conditions"
                          ],
                          "additionalProperties": false
                        },
                        "reviewer": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviewedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "revocation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revokedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "revokedAt",
                                "revokedBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceRetentionDays": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "authority",
                        "authorityEvidenceRef",
                        "parties",
                        "subject",
                        "territories",
                        "validFrom",
                        "validUntil",
                        "reviewBy",
                        "actions",
                        "limits",
                        "consents",
                        "attributionRequired",
                        "legalBasis",
                        "reviewer",
                        "reviewedAt",
                        "revocation",
                        "sourceRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "grant"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "grant": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "authority": "creator-owned",
                    "authorityEvidenceRef": "tenant-1/projects/own-footage-declaration",
                    "parties": [
                      {
                        "role": "owner",
                        "name": "tenant-1"
                      }
                    ],
                    "subject": {
                      "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                    },
                    "territories": [
                      "WORLDWIDE"
                    ],
                    "validFrom": "2026-01-01T00:00:00+00:00",
                    "validUntil": null,
                    "reviewBy": null,
                    "actions": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription"
                    ],
                    "limits": {
                      "commercialUse": false
                    },
                    "consents": [],
                    "attributionRequired": false,
                    "legalBasis": "Creator-owned material; project policy default (YSD-4006).",
                    "reviewer": "u1",
                    "reviewedAt": "2026-01-01T00:00:00+00:00",
                    "revocation": null,
                    "sourceRetentionDays": 365
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/grants/{grantId}/review": {
      "post": {
        "operationId": "reviewQuarantinedGrant",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "grantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c8cff4c3-3cb6-4dca-a3c6-6a40e4b45ce1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "upgrade"
                      },
                      "authority": {
                        "type": "string",
                        "enum": [
                          "creator-owned",
                          "explicit-license",
                          "public-domain",
                          "open-license",
                          "provider-authorization"
                        ]
                      },
                      "authorityEvidenceRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1024
                      },
                      "legalBasis": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "actions": {
                        "minItems": 1,
                        "maxItems": 12,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "playback",
                            "frame-extraction",
                            "proxy-generation",
                            "transcription",
                            "embedding",
                            "model-analysis",
                            "collaboration",
                            "teaching",
                            "publication",
                            "export",
                            "model-training",
                            "project-transfer"
                          ]
                        }
                      },
                      "validUntil": {
                        "anyOf": [
                          {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "reviewBy": {
                        "anyOf": [
                          {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "commercialUse": {
                        "type": "boolean"
                      },
                      "open": {
                        "type": "object",
                        "properties": {
                          "licenseName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "licenseVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "jurisdictionNote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "attributionText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "kind",
                      "authority",
                      "authorityEvidenceRef",
                      "legalBasis",
                      "actions"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "reject"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    },
                    "required": [
                      "kind",
                      "reason"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "grant": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "authority": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicit-license",
                            "public-domain",
                            "open-license",
                            "provider-authorization",
                            "user-declared-reference"
                          ]
                        },
                        "authorityEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "parties": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "licensor",
                                  "authorized-party",
                                  "participant"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "contactRef": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "role",
                              "name"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subject": {
                          "type": "object",
                          "properties": {
                            "workId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "assetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        "territories": {
                          "minItems": 1,
                          "maxItems": 300,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^([A-Z]{2}|WORLDWIDE)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reviewBy": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "actions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "limits": {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        "consents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "party": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "analysis",
                                  "sharing",
                                  "teaching",
                                  "publication",
                                  "model-training"
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "minor": {
                                "default": false,
                                "type": "boolean"
                              },
                              "guardian": {
                                "type": "object",
                                "properties": {
                                  "guardianName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "relationship": {
                                    "type": "string",
                                    "enum": [
                                      "parent",
                                      "legal-guardian",
                                      "authorized-institution"
                                    ]
                                  },
                                  "authorityEvidenceRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "guardianName",
                                  "relationship",
                                  "authorityEvidenceRef"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "party",
                              "scope",
                              "grantedAt",
                              "evidenceRef",
                              "revokedAt",
                              "minor"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "attributionRequired": {
                          "type": "boolean"
                        },
                        "attributionText": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "legalBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "policyDecision": {
                          "type": "object",
                          "properties": {
                            "outcome": {
                              "type": "string",
                              "enum": [
                                "approved",
                                "approved-with-conditions",
                                "review-required"
                              ]
                            },
                            "decidedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "conditions": {
                              "default": [],
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            }
                          },
                          "required": [
                            "outcome",
                            "decidedBy",
                            "decidedAt",
                            "policyRef",
                            "conditions"
                          ],
                          "additionalProperties": false
                        },
                        "reviewer": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviewedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "revocation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revokedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "revokedAt",
                                "revokedBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceRetentionDays": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "authority",
                        "authorityEvidenceRef",
                        "parties",
                        "subject",
                        "territories",
                        "validFrom",
                        "validUntil",
                        "reviewBy",
                        "actions",
                        "limits",
                        "consents",
                        "attributionRequired",
                        "legalBasis",
                        "reviewer",
                        "reviewedAt",
                        "revocation",
                        "sourceRetentionDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "grant"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "grant": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "authority": "creator-owned",
                    "authorityEvidenceRef": "tenant-1/projects/own-footage-declaration",
                    "parties": [
                      {
                        "role": "owner",
                        "name": "tenant-1"
                      }
                    ],
                    "subject": {
                      "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                    },
                    "territories": [
                      "WORLDWIDE"
                    ],
                    "validFrom": "2026-01-01T00:00:00+00:00",
                    "validUntil": null,
                    "reviewBy": null,
                    "actions": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription"
                    ],
                    "limits": {
                      "commercialUse": false
                    },
                    "consents": [],
                    "attributionRequired": false,
                    "legalBasis": "Creator-owned material; project policy default (YSD-4006).",
                    "reviewer": "u1",
                    "reviewedAt": "2026-01-01T00:00:00+00:00",
                    "revocation": null,
                    "sourceRetentionDays": 365
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/allowed-actions": {
      "get": {
        "operationId": "allowedActions",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workId": {
                      "type": "string"
                    },
                    "territory": {
                      "type": "string"
                    },
                    "allowedActions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "playback",
                          "frame-extraction",
                          "proxy-generation",
                          "transcription",
                          "embedding",
                          "model-analysis",
                          "collaboration",
                          "teaching",
                          "publication",
                          "export",
                          "model-training",
                          "project-transfer"
                        ]
                      }
                    }
                  },
                  "required": [
                    "workId",
                    "territory",
                    "allowedActions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/rights/resolve": {
      "post": {
        "operationId": "resolveRights",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "playback",
                      "frame-extraction",
                      "proxy-generation",
                      "transcription",
                      "embedding",
                      "model-analysis",
                      "collaboration",
                      "teaching",
                      "publication",
                      "export",
                      "model-training",
                      "project-transfer"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "destination": {
                    "type": "string",
                    "enum": [
                      "private",
                      "project",
                      "tenant-internal",
                      "external",
                      "production"
                    ]
                  }
                },
                "required": [
                  "projectId",
                  "action",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "outcome": {
                      "type": "string",
                      "enum": [
                        "allow",
                        "deny",
                        "review-required"
                      ]
                    },
                    "matchedGrantIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "policyRule": {
                      "type": "string"
                    },
                    "policyVersion": {
                      "type": "string"
                    },
                    "reasons": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "limitations": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "maxResolutionPixels": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxClipDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "maxQuotationChars": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "storageRegion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "private",
                                "project",
                                "tenant-internal",
                                "external"
                              ]
                            },
                            "commercialUse": {
                              "type": "boolean"
                            },
                            "derivativeRetentionDays": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "commercialUse"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "expiry": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reviewer": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "appealPath": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "outcome",
                    "matchedGrantIds",
                    "policyRule",
                    "policyVersion",
                    "reasons",
                    "limitations",
                    "expiry",
                    "reviewer",
                    "appealPath"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/rights/simulate": {
      "post": {
        "operationId": "simulateRights",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "proposal": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "revoke"
                          },
                          "grantId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "kind",
                          "grantId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "remove"
                          },
                          "grantId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "kind",
                          "grantId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "correct"
                          },
                          "grantId": {
                            "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)$"
                          },
                          "corrections": {
                            "type": "object",
                            "properties": {
                              "actions": {
                                "minItems": 1,
                                "maxItems": 12,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "playback",
                                    "frame-extraction",
                                    "proxy-generation",
                                    "transcription",
                                    "embedding",
                                    "model-analysis",
                                    "collaboration",
                                    "teaching",
                                    "publication",
                                    "export",
                                    "model-training",
                                    "project-transfer"
                                  ]
                                }
                              },
                              "territories": {
                                "maxItems": 300,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "pattern": "^[A-Z]{2}$"
                                }
                              },
                              "limits": {
                                "type": "object",
                                "properties": {
                                  "maxResolutionPixels": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "maxClipDurationFrames": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "maxQuotationChars": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "storageRegion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "audience": {
                                    "type": "string",
                                    "enum": [
                                      "private",
                                      "project",
                                      "tenant-internal",
                                      "external"
                                    ]
                                  },
                                  "commercialUse": {
                                    "type": "boolean"
                                  },
                                  "derivativeRetentionDays": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "kind",
                          "grantId",
                          "corrections"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "renew"
                          },
                          "grantId": {
                            "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)$"
                          },
                          "validUntil": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "grantId",
                          "validUntil"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "takedown"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "projectId",
                  "territory",
                  "proposal"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workId": {
                      "type": "string"
                    },
                    "territory": {
                      "type": "string"
                    },
                    "at": {
                      "type": "string"
                    },
                    "actionsBefore": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "playback",
                          "frame-extraction",
                          "proxy-generation",
                          "transcription",
                          "embedding",
                          "model-analysis",
                          "collaboration",
                          "teaching",
                          "publication",
                          "export",
                          "model-training",
                          "project-transfer"
                        ]
                      }
                    },
                    "actionsAfter": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "playback",
                          "frame-extraction",
                          "proxy-generation",
                          "transcription",
                          "embedding",
                          "model-analysis",
                          "collaboration",
                          "teaching",
                          "publication",
                          "export",
                          "model-training",
                          "project-transfer"
                        ]
                      }
                    },
                    "actionsLost": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "playback",
                          "frame-extraction",
                          "proxy-generation",
                          "transcription",
                          "embedding",
                          "model-analysis",
                          "collaboration",
                          "teaching",
                          "publication",
                          "export",
                          "model-training",
                          "project-transfer"
                        ]
                      }
                    },
                    "actionsGained": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "playback",
                          "frame-extraction",
                          "proxy-generation",
                          "transcription",
                          "embedding",
                          "model-analysis",
                          "collaboration",
                          "teaching",
                          "publication",
                          "export",
                          "model-training",
                          "project-transfer"
                        ]
                      }
                    },
                    "representationsLost": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "thumbnail",
                          "crop",
                          "waveform",
                          "feature-vector",
                          "transcript-excerpt",
                          "provider-deep-link",
                          "metadata-only"
                        ]
                      }
                    },
                    "representationsGained": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "thumbnail",
                          "crop",
                          "waveform",
                          "feature-vector",
                          "transcript-excerpt",
                          "provider-deep-link",
                          "metadata-only"
                        ]
                      }
                    },
                    "affectedDependencies": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "origin": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "work"
                                    },
                                    "workId": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "workId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "grant"
                                    },
                                    "grantId": {
                                      "type": "string"
                                    },
                                    "workId": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "grantId",
                                    "workId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "anchor"
                                    },
                                    "anchorId": {
                                      "type": "string"
                                    },
                                    "workId": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "anchorId",
                                    "workId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "records": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "family": {
                                    "type": "string"
                                  },
                                  "id": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "family",
                                  "id"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "objectKeys": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "exportReferences": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "exportId": {
                                    "type": "string"
                                  },
                                  "objectKey": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "exportId",
                                  "objectKey"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "notebooks": {
                              "type": "object",
                              "properties": {
                                "checked": {
                                  "type": "boolean"
                                },
                                "refs": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "checked",
                                "refs"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "origin",
                            "records",
                            "objectKeys",
                            "exportReferences",
                            "notebooks"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "summary": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "workId",
                    "territory",
                    "at",
                    "actionsBefore",
                    "actionsAfter",
                    "actionsLost",
                    "actionsGained",
                    "representationsLost",
                    "representationsGained",
                    "affectedDependencies",
                    "summary"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/rights/audit": {
      "get": {
        "operationId": "rightsAudit",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workId": {
                      "type": "string"
                    },
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string"
                          },
                          "actorUserId": {
                            "type": "string"
                          },
                          "detail": {
                            "type": "string"
                          },
                          "at": {
                            "type": "string"
                          },
                          "chainSeq": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "kind",
                          "actorUserId",
                          "detail",
                          "at",
                          "chainSeq"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "workId",
                    "entries"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/ingest": {
      "post": {
        "operationId": "ingestWork",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "fileName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[^/\\\\]+$"
                  },
                  "contentType": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "editionLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "editionKind": {
                    "type": "string",
                    "enum": [
                      "theatrical-cut",
                      "directors-cut",
                      "extended-cut",
                      "broadcast-version",
                      "restoration",
                      "game-build",
                      "patch",
                      "remaster",
                      "other"
                    ]
                  },
                  "sourceMode": {
                    "type": "string",
                    "enum": [
                      "file",
                      "licensed-stream",
                      "provider-link-only",
                      "internal-production-asset",
                      "unknown"
                    ]
                  },
                  "platform": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "buildNumber": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "patchVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "gameCapture": {
                    "type": "object",
                    "properties": {
                      "mods": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "captureConfiguration": {
                        "type": "object",
                        "properties": {
                          "resolution": {
                            "type": "string",
                            "pattern": "^\\d{3,5}x\\d{3,5}$"
                          },
                          "captureFrameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "inputOverlay": {
                            "type": "boolean"
                          },
                          "audioCaptured": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "resolution",
                          "captureFrameRate",
                          "inputOverlay",
                          "audioCaptured"
                        ],
                        "additionalProperties": false
                      },
                      "settings": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "additionalProperties": {
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "device": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      },
                      "network": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "offline",
                              "lan",
                              "online-peer-to-peer",
                              "online-server"
                            ]
                          },
                          "region": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          }
                        },
                        "required": [
                          "mode"
                        ],
                        "additionalProperties": false
                      },
                      "accessibility": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "mods",
                      "captureConfiguration",
                      "settings",
                      "device",
                      "accessibility"
                    ],
                    "additionalProperties": false
                  },
                  "primaryLanguage": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 35
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "fileName",
                  "contentType",
                  "editionLabel",
                  "primaryLanguage",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "edition": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "theatrical-cut",
                            "directors-cut",
                            "extended-cut",
                            "broadcast-version",
                            "restoration",
                            "game-build",
                            "patch",
                            "remaster",
                            "other"
                          ]
                        },
                        "sourceMode": {
                          "type": "string",
                          "enum": [
                            "file",
                            "licensed-stream",
                            "provider-link-only",
                            "internal-production-asset",
                            "unknown"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "platform": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "buildNumber": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "patchVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "region": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "primaryLanguage": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 35
                        },
                        "frameRate": {
                          "type": "object",
                          "properties": {
                            "numerator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 240000
                            },
                            "denominator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1001
                            }
                          },
                          "required": [
                            "numerator",
                            "denominator"
                          ],
                          "additionalProperties": false
                        },
                        "aspectRatio": {
                          "type": "object",
                          "properties": {
                            "horizontal": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "vertical": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "horizontal",
                            "vertical"
                          ],
                          "additionalProperties": false
                        },
                        "colorSpace": {
                          "type": "string",
                          "enum": [
                            "bt709",
                            "bt2020",
                            "srgb",
                            "p3",
                            "rec601",
                            "unknown"
                          ]
                        },
                        "dynamicRange": {
                          "type": "string",
                          "enum": [
                            "sdr",
                            "hdr10",
                            "dolby-vision",
                            "hlg",
                            "unknown"
                          ]
                        },
                        "audioTracks": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "layout": {
                                "type": "string",
                                "enum": [
                                  "mono",
                                  "stereo",
                                  "5.1",
                                  "7.1",
                                  "atmos",
                                  "other"
                                ]
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "original",
                                  "dub",
                                  "commentary",
                                  "descriptive-audio"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "layout",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subtitleTracks": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "subtitles",
                                  "closed-captions",
                                  "sdh",
                                  "forced-narrative"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "technicalRevision": {
                          "type": "object",
                          "properties": {
                            "contentHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "byteSize": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "recordedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "contentHash",
                            "recordedAt"
                          ],
                          "additionalProperties": false
                        },
                        "durationFrames": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "gameCapture": {
                          "type": "object",
                          "properties": {
                            "mods": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "captureConfiguration": {
                              "type": "object",
                              "properties": {
                                "resolution": {
                                  "type": "string",
                                  "pattern": "^\\d{3,5}x\\d{3,5}$"
                                },
                                "captureFrameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "inputOverlay": {
                                  "type": "boolean"
                                },
                                "audioCaptured": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolution",
                                "captureFrameRate",
                                "inputOverlay",
                                "audioCaptured"
                              ],
                              "additionalProperties": false
                            },
                            "settings": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "additionalProperties": {
                                "type": "string",
                                "maxLength": 500
                              }
                            },
                            "device": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "network": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "offline",
                                    "lan",
                                    "online-peer-to-peer",
                                    "online-server"
                                  ]
                                },
                                "region": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "mode"
                              ],
                              "additionalProperties": false
                            },
                            "accessibility": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "mods",
                            "captureConfiguration",
                            "settings",
                            "device",
                            "accessibility"
                          ],
                          "additionalProperties": false
                        },
                        "instrumentedSession": {
                          "type": "object",
                          "properties": {
                            "sessionId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "connectorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "buildContentManifest": {
                              "type": "object",
                              "properties": {
                                "contentManifestHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "platform": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "buildNumber": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "patchVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "contentManifestHash",
                                "platform",
                                "buildNumber",
                                "patchVersion"
                              ],
                              "additionalProperties": false
                            },
                            "clockMapping": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "deterministic-replay"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "video-clock-mapping"
                                    },
                                    "uncertaintyMs": {
                                      "type": "number",
                                      "minimum": 0
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "uncertaintyMs"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "replayReferences": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "kind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "nativeId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 512
                                  },
                                  "nativeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "domain",
                                  "kind",
                                  "nativeId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "telemetrySchemas": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "schemaRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "version": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "required": [
                                  "stream",
                                  "schemaRef",
                                  "version"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "privacyPolicy": {
                              "type": "object",
                              "properties": {
                                "capturedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "scrubbedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                }
                              },
                              "required": [
                                "capturedCategories",
                                "scrubbedCategories"
                              ],
                              "additionalProperties": false
                            },
                            "sourceAuthorityGrantId": {
                              "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)$"
                            },
                            "signature": {
                              "type": "object",
                              "properties": {
                                "algorithm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60
                                },
                                "keyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "signatureB64": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "signedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "canonicalization": {
                                  "type": "string",
                                  "const": "sorted-json-v1"
                                }
                              },
                              "required": [
                                "algorithm",
                                "keyId",
                                "signatureB64",
                                "signedAt",
                                "canonicalization"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "sessionId",
                            "buildContentManifest",
                            "clockMapping",
                            "replayReferences",
                            "telemetrySchemas",
                            "privacyPolicy",
                            "sourceAuthorityGrantId"
                          ],
                          "additionalProperties": false
                        },
                        "projectArtifactLinks": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "asset",
                                  "level",
                                  "animation-graph",
                                  "behavior-tree",
                                  "data-table",
                                  "source-project",
                                  "version"
                                ]
                              },
                              "nativeId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "engine": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "readAtRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "ownership": {
                                "type": "string",
                                "enum": [
                                  "creator-owned",
                                  "explicitly-authorized",
                                  "studied-only",
                                  "extracted-commercial"
                                ]
                              },
                              "authorizationEvidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "linkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "linkedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "kind",
                              "nativeId",
                              "engine",
                              "readAtRevision",
                              "ownership",
                              "linkedAt",
                              "linkedByUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "workId",
                        "kind",
                        "label",
                        "primaryLanguage",
                        "audioTracks",
                        "subtitleTracks",
                        "technicalRevision"
                      ],
                      "additionalProperties": false
                    },
                    "asset": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "file",
                            "stream-reference",
                            "transcript",
                            "subtitle",
                            "still",
                            "telemetry-bundle",
                            "document",
                            "commentary",
                            "project-asset",
                            "scene"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "storage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "object-store"
                                },
                                "objectKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "contentHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "byteSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "contentType": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "storageKind",
                                "objectKey",
                                "contentHash",
                                "byteSize",
                                "contentType"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "provider-link"
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "deepLink": {
                                  "type": "string",
                                  "maxLength": 2048,
                                  "format": "uri"
                                },
                                "lastVerifiedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "storageKind",
                                "provider",
                                "deepLink",
                                "lastVerifiedAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "trackIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "nativeRef": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        },
                        "sidecars": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "object": {
                                "type": "object",
                                "properties": {
                                  "storageKind": {
                                    "type": "string",
                                    "const": "object-store"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "byteSize": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "storageKind",
                                  "objectKey",
                                  "contentHash",
                                  "byteSize",
                                  "contentType"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "label",
                              "object"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syntheticMedia": {
                          "type": "object",
                          "properties": {
                            "disposition": {
                              "type": "string",
                              "enum": [
                                "ai-generated",
                                "ai-modified",
                                "not-ai",
                                "indeterminate"
                              ]
                            },
                            "basis": {
                              "type": "string",
                              "enum": [
                                "creator-declared",
                                "provider-declared",
                                "detected"
                              ]
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "confidence": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "calibrated"
                                    },
                                    "value": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "calibration": {
                                      "type": "object",
                                      "properties": {
                                        "method": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "calibrationSetId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "calibrationSetVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "validatedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "method",
                                        "calibrationSetId",
                                        "calibrationSetVersion",
                                        "validatedAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "interval": {
                                      "type": "object",
                                      "properties": {
                                        "lower": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "upper": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "coverage": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "exclusiveMaximum": 1
                                        }
                                      },
                                      "required": [
                                        "lower",
                                        "upper",
                                        "coverage"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "applicabilityBoundary": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "value",
                                    "calibration",
                                    "interval",
                                    "applicabilityBoundary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "uncalibrated"
                                    },
                                    "rawScore": {
                                      "type": "number"
                                    },
                                    "scale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "rawScore",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "missing"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "not-applicable",
                                        "not-yet-calibrated",
                                        "legacy-import",
                                        "processor-omitted"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "limitations": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "reviewStatus": {
                              "type": "string",
                              "enum": [
                                "unreviewed",
                                "accepted",
                                "contested"
                              ]
                            },
                            "reviewer": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "determinedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "disposition",
                            "basis",
                            "method",
                            "confidence",
                            "limitations",
                            "reviewStatus",
                            "determinedAt"
                          ],
                          "additionalProperties": false
                        },
                        "proxyOf": {
                          "type": "object",
                          "properties": {
                            "masterAssetId": {
                              "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)$"
                            },
                            "masterTrackId": {
                              "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)$"
                            },
                            "masterStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "masterDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "durationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "masterVariableFrameRate": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "masterAssetId",
                            "masterTrackId",
                            "masterStartFrame",
                            "masterDurationFrames",
                            "durationFrames",
                            "masterVariableFrameRate"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "kind",
                        "label",
                        "storage",
                        "rightsGrantIds",
                        "trackIds",
                        "sidecars"
                      ],
                      "additionalProperties": false
                    },
                    "tracks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "assetId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "video",
                              "audio",
                              "subtitle",
                              "transcript",
                              "telemetry",
                              "camera",
                              "animation",
                              "gameplay",
                              "commentary",
                              "custom"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "containerIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          },
                          "codecName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "disposition": {
                            "type": "object",
                            "properties": {
                              "default": {
                                "type": "boolean"
                              },
                              "forced": {
                                "type": "boolean"
                              },
                              "hearingImpaired": {
                                "type": "boolean"
                              }
                            },
                            "additionalProperties": false
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "assetId",
                          "kind",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "objectKey": {
                      "type": "string",
                      "minLength": 1
                    },
                    "sourceFacts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "epistemicIdentity": {
                            "type": "string",
                            "const": "source-fact"
                          },
                          "subject": {
                            "type": "object",
                            "properties": {
                              "workId": {
                                "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)$"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "assetId": {
                                "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)$"
                              }
                            },
                            "required": [
                              "workId"
                            ],
                            "additionalProperties": false
                          },
                          "property": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "value": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              }
                            ]
                          },
                          "unit": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "verification": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "enum": [
                                  "checksum-computation",
                                  "media-probe",
                                  "container-metadata",
                                  "distributor-manifest",
                                  "credits-text",
                                  "spec-document"
                                ]
                              },
                              "verifiedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "processor": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "codeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "name",
                                  "codeVersion"
                                ],
                                "additionalProperties": false
                              },
                              "citation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "method",
                              "verifiedAt"
                            ],
                            "additionalProperties": false
                          },
                          "anchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "epistemicIdentity",
                          "subject",
                          "property",
                          "value",
                          "verification",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "revalidationTasks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "workId": {
                            "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)$"
                          },
                          "triggeringEditionId": {
                            "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)$"
                          },
                          "subjectFamily": {
                            "type": "string",
                            "enum": [
                              "edition_alignment_map",
                              "interpretation_claim",
                              "observation",
                              "craft_hypothesis",
                              "cross_reference",
                              "study_notebook"
                            ]
                          },
                          "subjectRecordId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9_-]{8,160}$"
                          },
                          "triggerKind": {
                            "default": "build-changed",
                            "type": "string",
                            "enum": [
                              "build-changed",
                              "evidence-expired",
                              "evidence-deleted",
                              "evidence-contested"
                            ]
                          },
                          "evidencePath": {
                            "default": [],
                            "maxItems": 32,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "family": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                "id": {
                                  "type": "string",
                                  "pattern": "^[A-Za-z0-9_-]{8,160}$"
                                }
                              },
                              "required": [
                                "family",
                                "id"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "open",
                              "resolved"
                            ]
                          },
                          "resolution": {
                            "type": "object",
                            "properties": {
                              "resolvedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "resolvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "resolvedByUserId",
                              "note",
                              "resolvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "workId",
                          "triggeringEditionId",
                          "subjectFamily",
                          "subjectRecordId",
                          "triggerKind",
                          "evidencePath",
                          "reason",
                          "state"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "edition",
                    "asset",
                    "tracks",
                    "objectKey",
                    "sourceFacts",
                    "revalidationTasks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/playback": {
      "get": {
        "operationId": "playback",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "allowed": {
                      "type": "boolean",
                      "const": true
                    },
                    "grantId": {
                      "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)$"
                    },
                    "editionId": {
                      "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)$"
                    },
                    "assetId": {
                      "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)$"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "expiresInSeconds": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    },
                    "attributionRequired": {
                      "type": "boolean"
                    },
                    "rendition": {
                      "type": "object",
                      "properties": {
                        "masterAssetId": {
                          "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)$"
                        },
                        "masterTrackId": {
                          "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)$"
                        },
                        "masterStartFrame": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "masterDurationFrames": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "durationFrames": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "exact": {
                          "type": "boolean"
                        },
                        "maxMasterFramesPerProxyFrame": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "summary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "masterAssetId",
                        "masterTrackId",
                        "masterStartFrame",
                        "masterDurationFrames",
                        "durationFrames",
                        "exact",
                        "maxMasterFramesPerProxyFrame",
                        "summary"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "allowed",
                    "grantId",
                    "editionId",
                    "assetId",
                    "url",
                    "expiresInSeconds",
                    "attributionRequired"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/captions": {
      "get": {
        "operationId": "captions",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 512
                    },
                    "assetId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 512
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "tracks": {
                      "maxItems": 100,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "trackId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512
                          },
                          "containerIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "subtitles",
                              "closed-captions",
                              "sdh",
                              "forced-narrative"
                            ]
                          },
                          "htmlKind": {
                            "type": "string",
                            "enum": [
                              "captions",
                              "subtitles"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "default": {
                            "type": "boolean"
                          },
                          "objectKey": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\/api\\/study\\/works\\/[^/]+\\/captions\\/[^/]+\\/vtt\\?territory=[A-Z]{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "cueCount": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "unavailableReason": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "trackId",
                          "containerIndex",
                          "language",
                          "kind",
                          "htmlKind",
                          "label",
                          "default",
                          "objectKey",
                          "url",
                          "cueCount",
                          "unavailableReason"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "transcript": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "trackId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "complete": {
                              "type": "boolean"
                            },
                            "segments": {
                              "maxItems": 20000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "speaker": {
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "text": {
                                    "type": "string",
                                    "maxLength": 5000
                                  },
                                  "startMs": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endMs": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "speaker",
                                  "text",
                                  "startMs",
                                  "endMs"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "losses": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "message": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "field",
                                  "message"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "trackId",
                            "complete",
                            "segments",
                            "losses"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "editionId",
                    "assetId",
                    "tracks",
                    "transcript"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "extractCaptions",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "editionId": {
                    "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)$"
                  }
                },
                "required": [
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 512
                    },
                    "assetId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 512
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "tracks": {
                      "maxItems": 100,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "trackId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512
                          },
                          "containerIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "language": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "subtitles",
                              "closed-captions",
                              "sdh",
                              "forced-narrative"
                            ]
                          },
                          "htmlKind": {
                            "type": "string",
                            "enum": [
                              "captions",
                              "subtitles"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "default": {
                            "type": "boolean"
                          },
                          "objectKey": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\/api\\/study\\/works\\/[^/]+\\/captions\\/[^/]+\\/vtt\\?territory=[A-Z]{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "cueCount": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "unavailableReason": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "trackId",
                          "containerIndex",
                          "language",
                          "kind",
                          "htmlKind",
                          "label",
                          "default",
                          "objectKey",
                          "url",
                          "cueCount",
                          "unavailableReason"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "transcript": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "trackId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "complete": {
                              "type": "boolean"
                            },
                            "segments": {
                              "maxItems": 20000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "speaker": {
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "text": {
                                    "type": "string",
                                    "maxLength": 5000
                                  },
                                  "startMs": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endMs": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "speaker",
                                  "text",
                                  "startMs",
                                  "endMs"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "losses": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "message": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "field",
                                  "message"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "trackId",
                            "complete",
                            "segments",
                            "losses"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "editionId",
                    "assetId",
                    "tracks",
                    "transcript"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/segments": {
      "post": {
        "operationId": "createSegment",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "reel",
                      "act",
                      "chapter",
                      "sequence",
                      "scene",
                      "shot",
                      "take",
                      "beat",
                      "line",
                      "session",
                      "level",
                      "checkpoint",
                      "encounter",
                      "round",
                      "phase",
                      "action",
                      "state-transition",
                      "custom"
                    ]
                  },
                  "customKindLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "parentSegmentId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "orderKey": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "locator": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-range"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "startFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endFrame": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "startFrame",
                          "endFrame"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "frame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "region": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "y": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "width": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              },
                              "height": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "x",
                              "y",
                              "width",
                              "height"
                            ],
                            "additionalProperties": false
                          },
                          "shape": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "rectangle"
                                  }
                                },
                                "required": [
                                  "shapeKind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "polygon"
                                  },
                                  "points": {
                                    "minItems": 3,
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "points"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "point"
                                  },
                                  "point": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "point"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "skeleton"
                                  },
                                  "convention": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "joints": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "observed": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "point",
                                        "observed"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "bones": {
                                    "maxItems": 400,
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "prefixItems": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "convention",
                                  "joints",
                                  "bones"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "mask"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "coverageOfBox": {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 1
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "objectKey",
                                  "contentHash",
                                  "coverageOfBox"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "frame",
                          "region"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "tracked-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "keyframes": {
                            "minItems": 2,
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "interpolation": {
                            "type": "string",
                            "enum": [
                              "none",
                              "hold",
                              "linear"
                            ]
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "keyframes",
                          "interpolation",
                          "subject"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "waveform-interval"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "startSample": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endSample": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "channelIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 255
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "sampleRateHz",
                          "startSample",
                          "endSample"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "transcript-span"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "tokenStart": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "tokenEnd": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "exactText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "tokenStart",
                          "tokenEnd",
                          "exactText"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "document"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "coordinate": {
                            "type": "object",
                            "properties": {
                              "page": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "block": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "line": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "word": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charStart": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charEnd": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId",
                          "coordinate"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "runtime-event-range"
                          },
                          "start": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          },
                          "end": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "start"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "spatial"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "nodePath": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "position": {
                            "type": "object",
                            "properties": {
                              "space": {
                                "type": "string",
                                "enum": [
                                  "world",
                                  "local"
                                ]
                              },
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              },
                              "z": {
                                "type": "number"
                              },
                              "units": {
                                "default": "meters",
                                "type": "string",
                                "const": "meters"
                              }
                            },
                            "required": [
                              "space",
                              "x",
                              "y",
                              "z"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "projectId",
                  "kind",
                  "label",
                  "orderKey",
                  "locator"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "segment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "segment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listSegments",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "segments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "editionId": {
                            "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)$"
                          },
                          "technicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "reel",
                              "act",
                              "chapter",
                              "sequence",
                              "scene",
                              "shot",
                              "take",
                              "beat",
                              "line",
                              "session",
                              "level",
                              "checkpoint",
                              "encounter",
                              "round",
                              "phase",
                              "action",
                              "state-transition",
                              "custom"
                            ]
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "parentSegmentId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "orderKey": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "locator": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-range"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "frame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "region": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y",
                                      "width",
                                      "height"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "shape": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "rectangle"
                                          }
                                        },
                                        "required": [
                                          "shapeKind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "polygon"
                                          },
                                          "points": {
                                            "minItems": 3,
                                            "maxItems": 1000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "points"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "point"
                                          },
                                          "point": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "point"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "skeleton"
                                          },
                                          "convention": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "joints": {
                                            "minItems": 1,
                                            "maxItems": 200,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "name": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "observed": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "point",
                                                "observed"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "bones": {
                                            "maxItems": 400,
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "prefixItems": [
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "convention",
                                          "joints",
                                          "bones"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "mask"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "coverageOfBox": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "objectKey",
                                          "contentHash",
                                          "coverageOfBox"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "frame",
                                  "region"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "tracked-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "keyframes": {
                                    "minItems": 2,
                                    "maxItems": 10000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "frame": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "region": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "width": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            },
                                            "height": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y",
                                            "width",
                                            "height"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "shape": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "rectangle"
                                                }
                                              },
                                              "required": [
                                                "shapeKind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "polygon"
                                                },
                                                "points": {
                                                  "minItems": 3,
                                                  "maxItems": 1000,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "points"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "point"
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "point"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "skeleton"
                                                },
                                                "convention": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "joints": {
                                                  "minItems": 1,
                                                  "maxItems": 200,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string",
                                                        "minLength": 1,
                                                        "maxLength": 80
                                                      },
                                                      "point": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      "observed": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "point",
                                                      "observed"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "bones": {
                                                  "maxItems": 400,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      },
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "convention",
                                                "joints",
                                                "bones"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "mask"
                                                },
                                                "objectKey": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1024
                                                },
                                                "contentHash": {
                                                  "type": "string",
                                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                                },
                                                "coverageOfBox": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "objectKey",
                                                "contentHash",
                                                "coverageOfBox"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "frame",
                                        "region"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "interpolation": {
                                    "type": "string",
                                    "enum": [
                                      "none",
                                      "hold",
                                      "linear"
                                    ]
                                  },
                                  "subject": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "keyframes",
                                  "interpolation",
                                  "subject"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "waveform-interval"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "sampleRateHz": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1536000
                                  },
                                  "startSample": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endSample": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "channelIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "sampleRateHz",
                                  "startSample",
                                  "endSample"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "transcript-span"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "tokenStart": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "tokenEnd": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "exactText": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "tokenStart",
                                  "tokenEnd",
                                  "exactText"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "document"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "coordinate": {
                                    "type": "object",
                                    "properties": {
                                      "page": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "block": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "line": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "word": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charStart": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charEnd": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId",
                                  "coordinate"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "runtime-event-range"
                                  },
                                  "start": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "end": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "start"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "spatial"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "nodePath": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "position": {
                                    "type": "object",
                                    "properties": {
                                      "space": {
                                        "type": "string",
                                        "enum": [
                                          "world",
                                          "local"
                                        ]
                                      },
                                      "x": {
                                        "type": "number"
                                      },
                                      "y": {
                                        "type": "number"
                                      },
                                      "z": {
                                        "type": "number"
                                      },
                                      "units": {
                                        "default": "meters",
                                        "type": "string",
                                        "const": "meters"
                                      }
                                    },
                                    "required": [
                                      "space",
                                      "x",
                                      "y",
                                      "z",
                                      "units"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "segmentationVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "corrections": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "correctedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "field": {
                                  "type": "string",
                                  "enum": [
                                    "locator",
                                    "kind",
                                    "label",
                                    "parent",
                                    "lifecycle"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "from": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "to": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                }
                              },
                              "required": [
                                "correctedBy",
                                "field",
                                "reason",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "splitFromSegmentId": {
                            "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)$"
                          },
                          "mergedIntoSegmentId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "editionId",
                          "technicalRevisionHash",
                          "kind",
                          "label",
                          "parentSegmentId",
                          "orderKey",
                          "locator",
                          "segmentationVersion",
                          "author",
                          "confidence",
                          "reviewState",
                          "corrections"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "segments"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/tracks": {
      "get": {
        "operationId": "listTracks",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "type": "string"
                    },
                    "tracks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "assetId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "video",
                              "audio",
                              "subtitle",
                              "transcript",
                              "telemetry",
                              "camera",
                              "animation",
                              "gameplay",
                              "commentary",
                              "custom"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "containerIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          },
                          "codecName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "disposition": {
                            "type": "object",
                            "properties": {
                              "default": {
                                "type": "boolean"
                              },
                              "forced": {
                                "type": "boolean"
                              },
                              "hearingImpaired": {
                                "type": "boolean"
                              }
                            },
                            "additionalProperties": false
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "assetId",
                          "kind",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "tracks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/segments/reorder": {
      "post": {
        "operationId": "reorderSegments",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "parentSegmentId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "orderedSegmentIds": {
                    "minItems": 1,
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "parentSegmentId",
                  "orderedSegmentIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "segments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "editionId": {
                            "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)$"
                          },
                          "technicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "reel",
                              "act",
                              "chapter",
                              "sequence",
                              "scene",
                              "shot",
                              "take",
                              "beat",
                              "line",
                              "session",
                              "level",
                              "checkpoint",
                              "encounter",
                              "round",
                              "phase",
                              "action",
                              "state-transition",
                              "custom"
                            ]
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "parentSegmentId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "orderKey": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "locator": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-range"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "frame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "region": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y",
                                      "width",
                                      "height"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "shape": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "rectangle"
                                          }
                                        },
                                        "required": [
                                          "shapeKind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "polygon"
                                          },
                                          "points": {
                                            "minItems": 3,
                                            "maxItems": 1000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "points"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "point"
                                          },
                                          "point": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "point"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "skeleton"
                                          },
                                          "convention": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "joints": {
                                            "minItems": 1,
                                            "maxItems": 200,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "name": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "observed": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "point",
                                                "observed"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "bones": {
                                            "maxItems": 400,
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "prefixItems": [
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "convention",
                                          "joints",
                                          "bones"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "mask"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "coverageOfBox": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "objectKey",
                                          "contentHash",
                                          "coverageOfBox"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "frame",
                                  "region"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "tracked-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "keyframes": {
                                    "minItems": 2,
                                    "maxItems": 10000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "frame": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "region": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "width": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            },
                                            "height": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y",
                                            "width",
                                            "height"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "shape": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "rectangle"
                                                }
                                              },
                                              "required": [
                                                "shapeKind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "polygon"
                                                },
                                                "points": {
                                                  "minItems": 3,
                                                  "maxItems": 1000,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "points"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "point"
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "point"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "skeleton"
                                                },
                                                "convention": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "joints": {
                                                  "minItems": 1,
                                                  "maxItems": 200,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string",
                                                        "minLength": 1,
                                                        "maxLength": 80
                                                      },
                                                      "point": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      "observed": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "point",
                                                      "observed"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "bones": {
                                                  "maxItems": 400,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      },
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "convention",
                                                "joints",
                                                "bones"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "mask"
                                                },
                                                "objectKey": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1024
                                                },
                                                "contentHash": {
                                                  "type": "string",
                                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                                },
                                                "coverageOfBox": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "objectKey",
                                                "contentHash",
                                                "coverageOfBox"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "frame",
                                        "region"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "interpolation": {
                                    "type": "string",
                                    "enum": [
                                      "none",
                                      "hold",
                                      "linear"
                                    ]
                                  },
                                  "subject": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "keyframes",
                                  "interpolation",
                                  "subject"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "waveform-interval"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "sampleRateHz": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1536000
                                  },
                                  "startSample": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endSample": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "channelIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "sampleRateHz",
                                  "startSample",
                                  "endSample"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "transcript-span"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "tokenStart": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "tokenEnd": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "exactText": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "tokenStart",
                                  "tokenEnd",
                                  "exactText"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "document"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "coordinate": {
                                    "type": "object",
                                    "properties": {
                                      "page": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "block": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "line": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "word": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charStart": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charEnd": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId",
                                  "coordinate"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "runtime-event-range"
                                  },
                                  "start": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "end": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "start"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "spatial"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "nodePath": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "position": {
                                    "type": "object",
                                    "properties": {
                                      "space": {
                                        "type": "string",
                                        "enum": [
                                          "world",
                                          "local"
                                        ]
                                      },
                                      "x": {
                                        "type": "number"
                                      },
                                      "y": {
                                        "type": "number"
                                      },
                                      "z": {
                                        "type": "number"
                                      },
                                      "units": {
                                        "default": "meters",
                                        "type": "string",
                                        "const": "meters"
                                      }
                                    },
                                    "required": [
                                      "space",
                                      "x",
                                      "y",
                                      "z",
                                      "units"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "segmentationVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "corrections": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "correctedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "field": {
                                  "type": "string",
                                  "enum": [
                                    "locator",
                                    "kind",
                                    "label",
                                    "parent",
                                    "lifecycle"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "from": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "to": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                }
                              },
                              "required": [
                                "correctedBy",
                                "field",
                                "reason",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "splitFromSegmentId": {
                            "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)$"
                          },
                          "mergedIntoSegmentId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "editionId",
                          "technicalRevisionHash",
                          "kind",
                          "label",
                          "parentSegmentId",
                          "orderKey",
                          "locator",
                          "segmentationVersion",
                          "author",
                          "confidence",
                          "reviewState",
                          "corrections"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "segments"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/segment-overlaps": {
      "get": {
        "operationId": "segmentOverlaps",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "type": "string"
                    },
                    "overlaps": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "a": {
                            "type": "string"
                          },
                          "b": {
                            "type": "string"
                          },
                          "aLabel": {
                            "type": "string"
                          },
                          "bLabel": {
                            "type": "string"
                          },
                          "overlapStartFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "overlapEndFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "a",
                          "b",
                          "aLabel",
                          "bLabel",
                          "overlapStartFrame",
                          "overlapEndFrame"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "overlaps"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/segment-suggestions": {
      "get": {
        "operationId": "suggestSegments",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "type": "string"
                    },
                    "tool": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "codeVersion": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "codeVersion"
                      ],
                      "additionalProperties": false
                    },
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "kind": {
                            "type": "string",
                            "const": "shot"
                          },
                          "startFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endFrame": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "index",
                          "kind",
                          "startFrame",
                          "endFrame"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "tool",
                    "suggestions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/segments/{segmentId}/corrections": {
      "post": {
        "operationId": "correctSegment",
        "parameters": [
          {
            "name": "segmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0f9e3a08-417a-4354-a2d5-04a9c6030825"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "reel",
                      "act",
                      "chapter",
                      "sequence",
                      "scene",
                      "shot",
                      "take",
                      "beat",
                      "line",
                      "session",
                      "level",
                      "checkpoint",
                      "encounter",
                      "round",
                      "phase",
                      "action",
                      "state-transition",
                      "custom"
                    ]
                  },
                  "parentSegmentId": {
                    "anyOf": [
                      {
                        "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)$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "locator": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-range"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "startFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endFrame": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "startFrame",
                          "endFrame"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "frame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "region": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "y": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "width": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              },
                              "height": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "x",
                              "y",
                              "width",
                              "height"
                            ],
                            "additionalProperties": false
                          },
                          "shape": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "rectangle"
                                  }
                                },
                                "required": [
                                  "shapeKind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "polygon"
                                  },
                                  "points": {
                                    "minItems": 3,
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "points"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "point"
                                  },
                                  "point": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "point"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "skeleton"
                                  },
                                  "convention": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "joints": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "observed": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "point",
                                        "observed"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "bones": {
                                    "maxItems": 400,
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "prefixItems": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "convention",
                                  "joints",
                                  "bones"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "mask"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "coverageOfBox": {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 1
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "objectKey",
                                  "contentHash",
                                  "coverageOfBox"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "frame",
                          "region"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "tracked-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "keyframes": {
                            "minItems": 2,
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "interpolation": {
                            "type": "string",
                            "enum": [
                              "none",
                              "hold",
                              "linear"
                            ]
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "keyframes",
                          "interpolation",
                          "subject"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "waveform-interval"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "startSample": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endSample": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "channelIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 255
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "sampleRateHz",
                          "startSample",
                          "endSample"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "transcript-span"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "tokenStart": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "tokenEnd": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "exactText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "tokenStart",
                          "tokenEnd",
                          "exactText"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "document"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "coordinate": {
                            "type": "object",
                            "properties": {
                              "page": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "block": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "line": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "word": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charStart": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charEnd": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId",
                          "coordinate"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "runtime-event-range"
                          },
                          "start": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          },
                          "end": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "start"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "spatial"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "nodePath": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "position": {
                            "type": "object",
                            "properties": {
                              "space": {
                                "type": "string",
                                "enum": [
                                  "world",
                                  "local"
                                ]
                              },
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              },
                              "z": {
                                "type": "number"
                              },
                              "units": {
                                "default": "meters",
                                "type": "string",
                                "const": "meters"
                              }
                            },
                            "required": [
                              "space",
                              "x",
                              "y",
                              "z"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "segment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "segment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/annotation-imports": {
      "post": {
        "operationId": "importAnnotations",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "systemId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "documentRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "records": {
                    "minItems": 1,
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "rowRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "modality": {
                          "type": "string",
                          "enum": [
                            "visible",
                            "audible",
                            "source-inspectable"
                          ]
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "anchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "rowRef",
                        "modality",
                        "description",
                        "scope",
                        "anchorIds"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "systemId",
                  "importId",
                  "documentRef",
                  "records"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "imported": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "modality": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "audible",
                              "source-inspectable"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "viewingContext": {
                            "type": "object",
                            "properties": {
                              "firstViewing": {
                                "type": "boolean"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "playheadSeconds": {
                                "type": "number",
                                "minimum": 0
                              },
                              "disclosure": {
                                "type": "object",
                                "properties": {
                                  "structureRevealed": {
                                    "type": "boolean"
                                  },
                                  "revealedUpToSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "structureRevealed",
                                  "revealedUpToSeconds"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "firstViewing",
                              "editionId",
                              "technicalRevisionHash",
                              "playheadSeconds",
                              "disclosure"
                            ],
                            "additionalProperties": false
                          },
                          "rewatchPass": {
                            "type": "object",
                            "properties": {
                              "focus": {
                                "type": "string",
                                "enum": [
                                  "structure",
                                  "camera",
                                  "performance",
                                  "sound",
                                  "edit",
                                  "costume",
                                  "animation",
                                  "mechanics"
                                ]
                              }
                            },
                            "required": [
                              "focus"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "modality",
                          "description",
                          "scope",
                          "author",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "rejected": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "index": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "rowRef": {
                            "type": "string",
                            "maxLength": 400
                          },
                          "reasons": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "missing-row-reference",
                                "row-reference-repeated",
                                "row-reference-too-long",
                                "already-imported",
                                "no-anchor",
                                "unknown-anchor",
                                "anchor-not-active",
                                "anchor-in-another-project",
                                "invalid-record"
                              ]
                            }
                          },
                          "detail": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4000
                          }
                        },
                        "required": [
                          "index",
                          "rowRef",
                          "reasons",
                          "detail"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "alreadyPresent": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "imported",
                    "rejected",
                    "alreadyPresent"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/annotation-imports/{importId}/undo": {
      "post": {
        "operationId": "undoAnnotationImport",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "importId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf54edba-fcaf-44ae-ac9e-381fa3a71cb9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "withdrawn": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "modality": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "audible",
                              "source-inspectable"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "viewingContext": {
                            "type": "object",
                            "properties": {
                              "firstViewing": {
                                "type": "boolean"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "playheadSeconds": {
                                "type": "number",
                                "minimum": 0
                              },
                              "disclosure": {
                                "type": "object",
                                "properties": {
                                  "structureRevealed": {
                                    "type": "boolean"
                                  },
                                  "revealedUpToSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "structureRevealed",
                                  "revealedUpToSeconds"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "firstViewing",
                              "editionId",
                              "technicalRevisionHash",
                              "playheadSeconds",
                              "disclosure"
                            ],
                            "additionalProperties": false
                          },
                          "rewatchPass": {
                            "type": "object",
                            "properties": {
                              "focus": {
                                "type": "string",
                                "enum": [
                                  "structure",
                                  "camera",
                                  "performance",
                                  "sound",
                                  "edit",
                                  "costume",
                                  "animation",
                                  "mechanics"
                                ]
                              }
                            },
                            "required": [
                              "focus"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "modality",
                          "description",
                          "scope",
                          "author",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "retained": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "observationId": {
                            "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)$"
                          },
                          "rowRef": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 400
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "undoable": {
                            "type": "boolean"
                          },
                          "refusals": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "not-from-this-import",
                                "revised-since-import",
                                "reviewed-since-import",
                                "already-withdrawn",
                                "not-the-importer"
                              ]
                            }
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          }
                        },
                        "required": [
                          "observationId",
                          "rowRef",
                          "undoable",
                          "refusals",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "withdrawn",
                    "retained"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/segments/{segmentId}/split": {
      "post": {
        "operationId": "splitSegment",
        "parameters": [
          {
            "name": "segmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0f9e3a08-417a-4354-a2d5-04a9c6030825"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "splitAt": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "tailLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "tailKind": {
                    "type": "string",
                    "enum": [
                      "reel",
                      "act",
                      "chapter",
                      "sequence",
                      "scene",
                      "shot",
                      "take",
                      "beat",
                      "line",
                      "session",
                      "level",
                      "checkpoint",
                      "encounter",
                      "round",
                      "phase",
                      "action",
                      "state-transition",
                      "custom"
                    ]
                  },
                  "tailCustomKindLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "headExactText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "tailExactText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "splitAt",
                  "tailLabel",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "head": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    },
                    "tail": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    },
                    "reparentedChildIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unplaceableChildIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "shiftedSiblingIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "head",
                    "tail",
                    "reparentedChildIds",
                    "unplaceableChildIds",
                    "shiftedSiblingIds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/segments/{segmentId}/merge": {
      "post": {
        "operationId": "mergeSegments",
        "parameters": [
          {
            "name": "segmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0f9e3a08-417a-4354-a2d5-04a9c6030825"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "otherSegmentId": {
                    "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)$"
                  },
                  "resultingLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "resultingKind": {
                    "type": "string",
                    "enum": [
                      "reel",
                      "act",
                      "chapter",
                      "sequence",
                      "scene",
                      "shot",
                      "take",
                      "beat",
                      "line",
                      "session",
                      "level",
                      "checkpoint",
                      "encounter",
                      "round",
                      "phase",
                      "action",
                      "state-transition",
                      "custom"
                    ]
                  },
                  "resultingCustomKindLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "exactText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "otherSegmentId",
                  "resultingLabel",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "survivor": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    },
                    "retired": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    },
                    "reparentedChildIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "resolvedOverlap": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "survivor",
                    "retired",
                    "reparentedChildIds",
                    "resolvedOverlap"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/segments/{segmentId}/withdrawal": {
      "post": {
        "operationId": "withdrawDraftSegment",
        "parameters": [
          {
            "name": "segmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "0f9e3a08-417a-4354-a2d5-04a9c6030825"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "segment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "reel",
                            "act",
                            "chapter",
                            "sequence",
                            "scene",
                            "shot",
                            "take",
                            "beat",
                            "line",
                            "session",
                            "level",
                            "checkpoint",
                            "encounter",
                            "round",
                            "phase",
                            "action",
                            "state-transition",
                            "custom"
                          ]
                        },
                        "customKindLabel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "parentSegmentId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "orderKey": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "segmentationVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "corrections": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "correctedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "locator",
                                  "kind",
                                  "label",
                                  "parent",
                                  "lifecycle"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "from": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "to": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              }
                            },
                            "required": [
                              "correctedBy",
                              "field",
                              "reason",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "splitFromSegmentId": {
                          "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)$"
                        },
                        "mergedIntoSegmentId": {
                          "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)$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "kind",
                        "label",
                        "parentSegmentId",
                        "orderKey",
                        "locator",
                        "segmentationVersion",
                        "author",
                        "confidence",
                        "reviewState",
                        "corrections"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "segment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/anchors": {
      "post": {
        "operationId": "createAnchor",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "locator": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-range"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "startFrame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endFrame": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "startFrame",
                          "endFrame"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "frame-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "frame": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "region": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "y": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "width": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              },
                              "height": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "x",
                              "y",
                              "width",
                              "height"
                            ],
                            "additionalProperties": false
                          },
                          "shape": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "rectangle"
                                  }
                                },
                                "required": [
                                  "shapeKind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "polygon"
                                  },
                                  "points": {
                                    "minItems": 3,
                                    "maxItems": 1000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "points"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "point"
                                  },
                                  "point": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "point"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "skeleton"
                                  },
                                  "convention": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "joints": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "observed": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "point",
                                        "observed"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "bones": {
                                    "maxItems": 400,
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "prefixItems": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "convention",
                                  "joints",
                                  "bones"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "shapeKind": {
                                    "type": "string",
                                    "const": "mask"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "coverageOfBox": {
                                    "type": "number",
                                    "exclusiveMinimum": 0,
                                    "maximum": 1
                                  }
                                },
                                "required": [
                                  "shapeKind",
                                  "objectKey",
                                  "contentHash",
                                  "coverageOfBox"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "frame",
                          "region"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "tracked-region"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "keyframes": {
                            "minItems": 2,
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "interpolation": {
                            "type": "string",
                            "enum": [
                              "none",
                              "hold",
                              "linear"
                            ]
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "frameRate",
                          "keyframes",
                          "interpolation",
                          "subject"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "waveform-interval"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "startSample": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endSample": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "channelIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 255
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "sampleRateHz",
                          "startSample",
                          "endSample"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "transcript-span"
                          },
                          "trackId": {
                            "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)$"
                          },
                          "tokenStart": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "tokenEnd": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "exactText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          }
                        },
                        "required": [
                          "locatorKind",
                          "trackId",
                          "tokenStart",
                          "tokenEnd",
                          "exactText"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "document"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "coordinate": {
                            "type": "object",
                            "properties": {
                              "page": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "block": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "line": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "word": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charStart": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "charEnd": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId",
                          "coordinate"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "runtime-event-range"
                          },
                          "start": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          },
                          "end": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "eventIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "monotonic": {
                                "type": "object",
                                "properties": {
                                  "clockDomain": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "nanoseconds": {
                                    "type": "string",
                                    "pattern": "^\\d{1,19}$"
                                  }
                                },
                                "required": [
                                  "clockDomain",
                                  "nanoseconds"
                                ],
                                "additionalProperties": false
                              },
                              "wallClock": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "sessionId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "start"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "spatial"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "nodePath": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "position": {
                            "type": "object",
                            "properties": {
                              "space": {
                                "type": "string",
                                "enum": [
                                  "world",
                                  "local"
                                ]
                              },
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              },
                              "z": {
                                "type": "number"
                              },
                              "units": {
                                "default": "meters",
                                "type": "string",
                                "const": "meters"
                              }
                            },
                            "required": [
                              "space",
                              "x",
                              "y",
                              "z"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "locatorKind",
                          "assetId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "locatorKind": {
                            "type": "string",
                            "const": "compound"
                          },
                          "components": {
                            "minItems": 2,
                            "maxItems": 10,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "frame-range"
                                    },
                                    "trackId": {
                                      "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)$"
                                    },
                                    "frameRate": {
                                      "type": "object",
                                      "properties": {
                                        "numerator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 240000
                                        },
                                        "denominator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 1001
                                        }
                                      },
                                      "required": [
                                        "numerator",
                                        "denominator"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "startFrame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endFrame": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "trackId",
                                    "frameRate",
                                    "startFrame",
                                    "endFrame"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "frame-region"
                                    },
                                    "trackId": {
                                      "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)$"
                                    },
                                    "frameRate": {
                                      "type": "object",
                                      "properties": {
                                        "numerator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 240000
                                        },
                                        "denominator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 1001
                                        }
                                      },
                                      "required": [
                                        "numerator",
                                        "denominator"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "frame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "region": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "width": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        },
                                        "height": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y",
                                        "width",
                                        "height"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "shape": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "shapeKind": {
                                              "type": "string",
                                              "const": "rectangle"
                                            }
                                          },
                                          "required": [
                                            "shapeKind"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "shapeKind": {
                                              "type": "string",
                                              "const": "polygon"
                                            },
                                            "points": {
                                              "minItems": 3,
                                              "maxItems": 1000,
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            }
                                          },
                                          "required": [
                                            "shapeKind",
                                            "points"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "shapeKind": {
                                              "type": "string",
                                              "const": "point"
                                            },
                                            "point": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "shapeKind",
                                            "point"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "shapeKind": {
                                              "type": "string",
                                              "const": "skeleton"
                                            },
                                            "convention": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 120
                                            },
                                            "joints": {
                                              "minItems": 1,
                                              "maxItems": 200,
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "properties": {
                                                  "name": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 80
                                                  },
                                                  "point": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  "observed": {
                                                    "type": "boolean"
                                                  }
                                                },
                                                "required": [
                                                  "name",
                                                  "point",
                                                  "observed"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "bones": {
                                              "maxItems": 400,
                                              "type": "array",
                                              "items": {
                                                "type": "array",
                                                "prefixItems": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  },
                                                  {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  }
                                                ]
                                              }
                                            }
                                          },
                                          "required": [
                                            "shapeKind",
                                            "convention",
                                            "joints",
                                            "bones"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "shapeKind": {
                                              "type": "string",
                                              "const": "mask"
                                            },
                                            "objectKey": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 1024
                                            },
                                            "contentHash": {
                                              "type": "string",
                                              "pattern": "^sha256:[0-9a-f]{64}$"
                                            },
                                            "coverageOfBox": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "shapeKind",
                                            "objectKey",
                                            "contentHash",
                                            "coverageOfBox"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "trackId",
                                    "frameRate",
                                    "frame",
                                    "region"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "tracked-region"
                                    },
                                    "trackId": {
                                      "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)$"
                                    },
                                    "frameRate": {
                                      "type": "object",
                                      "properties": {
                                        "numerator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 240000
                                        },
                                        "denominator": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 1001
                                        }
                                      },
                                      "required": [
                                        "numerator",
                                        "denominator"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "keyframes": {
                                      "minItems": 2,
                                      "maxItems": 10000,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "frame": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "region": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "width": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              },
                                              "height": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y",
                                              "width",
                                              "height"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "shape": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "rectangle"
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "polygon"
                                                  },
                                                  "points": {
                                                    "minItems": 3,
                                                    "maxItems": 1000,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "points"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "point"
                                                  },
                                                  "point": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "point"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "skeleton"
                                                  },
                                                  "convention": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 120
                                                  },
                                                  "joints": {
                                                    "minItems": 1,
                                                    "maxItems": 200,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "name": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 80
                                                        },
                                                        "point": {
                                                          "type": "object",
                                                          "properties": {
                                                            "x": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            },
                                                            "y": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            }
                                                          },
                                                          "required": [
                                                            "x",
                                                            "y"
                                                          ],
                                                          "additionalProperties": false
                                                        },
                                                        "observed": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "name",
                                                        "point",
                                                        "observed"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  },
                                                  "bones": {
                                                    "maxItems": 400,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "array",
                                                      "prefixItems": [
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        },
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "convention",
                                                  "joints",
                                                  "bones"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "mask"
                                                  },
                                                  "objectKey": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 1024
                                                  },
                                                  "contentHash": {
                                                    "type": "string",
                                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                                  },
                                                  "coverageOfBox": {
                                                    "type": "number",
                                                    "exclusiveMinimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "objectKey",
                                                  "contentHash",
                                                  "coverageOfBox"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "frame",
                                          "region"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "interpolation": {
                                      "type": "string",
                                      "enum": [
                                        "none",
                                        "hold",
                                        "linear"
                                      ]
                                    },
                                    "subject": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "trackId",
                                    "frameRate",
                                    "keyframes",
                                    "interpolation",
                                    "subject"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "waveform-interval"
                                    },
                                    "trackId": {
                                      "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)$"
                                    },
                                    "sampleRateHz": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1536000
                                    },
                                    "startSample": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endSample": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "channelIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 255
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "trackId",
                                    "sampleRateHz",
                                    "startSample",
                                    "endSample"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "transcript-span"
                                    },
                                    "trackId": {
                                      "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)$"
                                    },
                                    "tokenStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "tokenEnd": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "exactText": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 5000
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "trackId",
                                    "tokenStart",
                                    "tokenEnd",
                                    "exactText"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "document"
                                    },
                                    "assetId": {
                                      "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)$"
                                    },
                                    "coordinate": {
                                      "type": "object",
                                      "properties": {
                                        "page": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        "block": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "line": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "word": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "charStart": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "charEnd": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "assetId",
                                    "coordinate"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "runtime-event-range"
                                    },
                                    "start": {
                                      "type": "object",
                                      "properties": {
                                        "sessionId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "eventIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "monotonic": {
                                          "type": "object",
                                          "properties": {
                                            "clockDomain": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            },
                                            "nanoseconds": {
                                              "type": "string",
                                              "pattern": "^\\d{1,19}$"
                                            }
                                          },
                                          "required": [
                                            "clockDomain",
                                            "nanoseconds"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "wallClock": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "sessionId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "end": {
                                      "type": "object",
                                      "properties": {
                                        "sessionId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "eventIndex": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "monotonic": {
                                          "type": "object",
                                          "properties": {
                                            "clockDomain": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            },
                                            "nanoseconds": {
                                              "type": "string",
                                              "pattern": "^\\d{1,19}$"
                                            }
                                          },
                                          "required": [
                                            "clockDomain",
                                            "nanoseconds"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "wallClock": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "sessionId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "start"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "locatorKind": {
                                      "type": "string",
                                      "const": "spatial"
                                    },
                                    "assetId": {
                                      "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)$"
                                    },
                                    "nodePath": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1024
                                    },
                                    "position": {
                                      "type": "object",
                                      "properties": {
                                        "space": {
                                          "type": "string",
                                          "enum": [
                                            "world",
                                            "local"
                                          ]
                                        },
                                        "x": {
                                          "type": "number"
                                        },
                                        "y": {
                                          "type": "number"
                                        },
                                        "z": {
                                          "type": "number"
                                        },
                                        "units": {
                                          "default": "meters",
                                          "type": "string",
                                          "const": "meters"
                                        }
                                      },
                                      "required": [
                                        "space",
                                        "x",
                                        "y",
                                        "z"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "locatorKind",
                                    "assetId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "entityId": {
                            "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)$"
                          },
                          "conjunctionNote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "locatorKind",
                          "components",
                          "conjunctionNote"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "scope": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "instant"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "frame"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "time-range"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "beat"
                          },
                          "opensWith": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "closesWith": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "kind",
                          "opensWith",
                          "closesWith"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "recurring-motif"
                          },
                          "recurs": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          }
                        },
                        "required": [
                          "kind",
                          "recurs"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "discontinuous-interval"
                          },
                          "interruptedBy": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          }
                        },
                        "required": [
                          "kind",
                          "interruptedBy"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "linked-moment"
                          },
                          "oneMomentBecause": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          }
                        },
                        "required": [
                          "kind",
                          "oneMomentBecause"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "entity"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "property"
                          },
                          "property": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "kind",
                          "property"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "locator",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "anchor": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "assetId": {
                          "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)$"
                        },
                        "sessionId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "compound"
                                },
                                "components": {
                                  "minItems": 2,
                                  "maxItems": 10,
                                  "type": "array",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "frame-range"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "startFrame": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "endFrame": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "startFrame",
                                          "endFrame"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "frame-region"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "frame": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "region": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "width": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              },
                                              "height": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y",
                                              "width",
                                              "height"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "shape": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "rectangle"
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "polygon"
                                                  },
                                                  "points": {
                                                    "minItems": 3,
                                                    "maxItems": 1000,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "points"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "point"
                                                  },
                                                  "point": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "point"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "skeleton"
                                                  },
                                                  "convention": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 120
                                                  },
                                                  "joints": {
                                                    "minItems": 1,
                                                    "maxItems": 200,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "name": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 80
                                                        },
                                                        "point": {
                                                          "type": "object",
                                                          "properties": {
                                                            "x": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            },
                                                            "y": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            }
                                                          },
                                                          "required": [
                                                            "x",
                                                            "y"
                                                          ],
                                                          "additionalProperties": false
                                                        },
                                                        "observed": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "name",
                                                        "point",
                                                        "observed"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  },
                                                  "bones": {
                                                    "maxItems": 400,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "array",
                                                      "prefixItems": [
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        },
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "convention",
                                                  "joints",
                                                  "bones"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "mask"
                                                  },
                                                  "objectKey": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 1024
                                                  },
                                                  "contentHash": {
                                                    "type": "string",
                                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                                  },
                                                  "coverageOfBox": {
                                                    "type": "number",
                                                    "exclusiveMinimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "objectKey",
                                                  "contentHash",
                                                  "coverageOfBox"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "frame",
                                          "region"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "tracked-region"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "keyframes": {
                                            "minItems": 2,
                                            "maxItems": 10000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "frame": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "region": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "width": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "height": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y",
                                                    "width",
                                                    "height"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "shape": {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "rectangle"
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "polygon"
                                                        },
                                                        "points": {
                                                          "minItems": 3,
                                                          "maxItems": 1000,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "points"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "point"
                                                        },
                                                        "point": {
                                                          "type": "object",
                                                          "properties": {
                                                            "x": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            },
                                                            "y": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            }
                                                          },
                                                          "required": [
                                                            "x",
                                                            "y"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "point"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "skeleton"
                                                        },
                                                        "convention": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 120
                                                        },
                                                        "joints": {
                                                          "minItems": 1,
                                                          "maxItems": 200,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "name": {
                                                                "type": "string",
                                                                "minLength": 1,
                                                                "maxLength": 80
                                                              },
                                                              "point": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "x": {
                                                                    "type": "number",
                                                                    "minimum": 0,
                                                                    "maximum": 1
                                                                  },
                                                                  "y": {
                                                                    "type": "number",
                                                                    "minimum": 0,
                                                                    "maximum": 1
                                                                  }
                                                                },
                                                                "required": [
                                                                  "x",
                                                                  "y"
                                                                ],
                                                                "additionalProperties": false
                                                              },
                                                              "observed": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "name",
                                                              "point",
                                                              "observed"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "bones": {
                                                          "maxItems": 400,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "array",
                                                            "prefixItems": [
                                                              {
                                                                "type": "integer",
                                                                "minimum": 0,
                                                                "maximum": 9007199254740991
                                                              },
                                                              {
                                                                "type": "integer",
                                                                "minimum": 0,
                                                                "maximum": 9007199254740991
                                                              }
                                                            ]
                                                          }
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "convention",
                                                        "joints",
                                                        "bones"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "mask"
                                                        },
                                                        "objectKey": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 1024
                                                        },
                                                        "contentHash": {
                                                          "type": "string",
                                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                                        },
                                                        "coverageOfBox": {
                                                          "type": "number",
                                                          "exclusiveMinimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "objectKey",
                                                        "contentHash",
                                                        "coverageOfBox"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "frame",
                                                "region"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "interpolation": {
                                            "type": "string",
                                            "enum": [
                                              "none",
                                              "hold",
                                              "linear"
                                            ]
                                          },
                                          "subject": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 300
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "keyframes",
                                          "interpolation",
                                          "subject"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "waveform-interval"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "sampleRateHz": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 1536000
                                          },
                                          "startSample": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "endSample": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          },
                                          "channelIndex": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 255
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "sampleRateHz",
                                          "startSample",
                                          "endSample"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "transcript-span"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "tokenStart": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "tokenEnd": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          },
                                          "exactText": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 5000
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "tokenStart",
                                          "tokenEnd",
                                          "exactText"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "document"
                                          },
                                          "assetId": {
                                            "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)$"
                                          },
                                          "coordinate": {
                                            "type": "object",
                                            "properties": {
                                              "page": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 9007199254740991
                                              },
                                              "block": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "line": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "word": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "charStart": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "charEnd": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            },
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "assetId",
                                          "coordinate"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "runtime-event-range"
                                          },
                                          "start": {
                                            "type": "object",
                                            "properties": {
                                              "sessionId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              },
                                              "eventIndex": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "monotonic": {
                                                "type": "object",
                                                "properties": {
                                                  "clockDomain": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 160
                                                  },
                                                  "nanoseconds": {
                                                    "type": "string",
                                                    "pattern": "^\\d{1,19}$"
                                                  }
                                                },
                                                "required": [
                                                  "clockDomain",
                                                  "nanoseconds"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "wallClock": {
                                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                              }
                                            },
                                            "required": [
                                              "sessionId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "end": {
                                            "type": "object",
                                            "properties": {
                                              "sessionId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              },
                                              "eventIndex": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "monotonic": {
                                                "type": "object",
                                                "properties": {
                                                  "clockDomain": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 160
                                                  },
                                                  "nanoseconds": {
                                                    "type": "string",
                                                    "pattern": "^\\d{1,19}$"
                                                  }
                                                },
                                                "required": [
                                                  "clockDomain",
                                                  "nanoseconds"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "wallClock": {
                                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                              }
                                            },
                                            "required": [
                                              "sessionId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "start"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "spatial"
                                          },
                                          "assetId": {
                                            "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)$"
                                          },
                                          "nodePath": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "position": {
                                            "type": "object",
                                            "properties": {
                                              "space": {
                                                "type": "string",
                                                "enum": [
                                                  "world",
                                                  "local"
                                                ]
                                              },
                                              "x": {
                                                "type": "number"
                                              },
                                              "y": {
                                                "type": "number"
                                              },
                                              "z": {
                                                "type": "number"
                                              },
                                              "units": {
                                                "default": "meters",
                                                "type": "string",
                                                "const": "meters"
                                              }
                                            },
                                            "required": [
                                              "space",
                                              "x",
                                              "y",
                                              "z",
                                              "units"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "assetId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "entityId": {
                                  "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)$"
                                },
                                "conjunctionNote": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "components",
                                "conjunctionNote"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "permittedRepresentations": {
                          "minItems": 1,
                          "maxItems": 7,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "crop",
                              "waveform",
                              "feature-vector",
                              "transcript-excerpt",
                              "provider-deep-link",
                              "metadata-only"
                            ]
                          }
                        },
                        "acquisition": {
                          "type": "object",
                          "properties": {
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "acquiredAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "processor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "method",
                            "acquiredAt"
                          ],
                          "additionalProperties": false
                        },
                        "derivation": {
                          "type": "object",
                          "properties": {
                            "parentAnchorIds": {
                              "minItems": 1,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "processor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "codeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "modelVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "configuration": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {}
                            }
                          },
                          "required": [
                            "parentAnchorIds",
                            "processor",
                            "codeVersion",
                            "configuration"
                          ],
                          "additionalProperties": false
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "scope": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "instant"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "frame"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "time-range"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "beat"
                                },
                                "opensWith": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "closesWith": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "kind",
                                "opensWith",
                                "closesWith"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "recurring-motif"
                                },
                                "recurs": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "recurs"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "discontinuous-interval"
                                },
                                "interruptedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "interruptedBy"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "linked-moment"
                                },
                                "oneMomentBecause": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "oneMomentBecause"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "entity"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "property"
                                },
                                "property": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "property"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "proxyMapping": {
                          "type": "object",
                          "properties": {
                            "viaAssetId": {
                              "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)$"
                            },
                            "proxyStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "proxyEndFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "exact": {
                              "type": "boolean"
                            },
                            "maxMasterFramesPerProxyFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "viaAssetId",
                            "proxyStartFrame",
                            "proxyEndFrame",
                            "exact",
                            "maxMasterFramesPerProxyFrame"
                          ],
                          "additionalProperties": false
                        },
                        "migratedFromAnchorId": {
                          "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)$"
                        },
                        "deepLinkPath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2048
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "locator",
                        "permittedRepresentations",
                        "acquisition",
                        "rightsGrantIds",
                        "reviewState",
                        "deepLinkPath"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "anchor"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "anchor": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.4.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "workId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "assetId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "editionId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                    "locator": {
                      "locatorKind": "frame-range",
                      "trackId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                      "frameRate": {
                        "numerator": 24,
                        "denominator": 1
                      },
                      "startFrame": 1000,
                      "endFrame": 1240
                    },
                    "permittedRepresentations": [
                      "thumbnail"
                    ],
                    "acquisition": {
                      "method": "manual-selection",
                      "acquiredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "rightsGrantIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "reviewState": "accepted",
                    "deepLinkPath": "/studio/study/p/x/source/y?frames=1000-1240"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listAnchors",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "anchors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "workId": {
                            "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)$"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "sessionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "editionId": {
                            "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)$"
                          },
                          "technicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "locator": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-range"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "frame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "region": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y",
                                      "width",
                                      "height"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "shape": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "rectangle"
                                          }
                                        },
                                        "required": [
                                          "shapeKind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "polygon"
                                          },
                                          "points": {
                                            "minItems": 3,
                                            "maxItems": 1000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "points"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "point"
                                          },
                                          "point": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "point"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "skeleton"
                                          },
                                          "convention": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "joints": {
                                            "minItems": 1,
                                            "maxItems": 200,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "name": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "observed": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "point",
                                                "observed"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "bones": {
                                            "maxItems": 400,
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "prefixItems": [
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "convention",
                                          "joints",
                                          "bones"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "mask"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "coverageOfBox": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "objectKey",
                                          "contentHash",
                                          "coverageOfBox"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "frame",
                                  "region"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "tracked-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "keyframes": {
                                    "minItems": 2,
                                    "maxItems": 10000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "frame": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "region": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "width": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            },
                                            "height": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y",
                                            "width",
                                            "height"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "shape": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "rectangle"
                                                }
                                              },
                                              "required": [
                                                "shapeKind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "polygon"
                                                },
                                                "points": {
                                                  "minItems": 3,
                                                  "maxItems": 1000,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "points"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "point"
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "point"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "skeleton"
                                                },
                                                "convention": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "joints": {
                                                  "minItems": 1,
                                                  "maxItems": 200,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string",
                                                        "minLength": 1,
                                                        "maxLength": 80
                                                      },
                                                      "point": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      "observed": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "point",
                                                      "observed"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "bones": {
                                                  "maxItems": 400,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      },
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "convention",
                                                "joints",
                                                "bones"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "mask"
                                                },
                                                "objectKey": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1024
                                                },
                                                "contentHash": {
                                                  "type": "string",
                                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                                },
                                                "coverageOfBox": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "objectKey",
                                                "contentHash",
                                                "coverageOfBox"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "frame",
                                        "region"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "interpolation": {
                                    "type": "string",
                                    "enum": [
                                      "none",
                                      "hold",
                                      "linear"
                                    ]
                                  },
                                  "subject": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "keyframes",
                                  "interpolation",
                                  "subject"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "waveform-interval"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "sampleRateHz": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1536000
                                  },
                                  "startSample": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endSample": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "channelIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "sampleRateHz",
                                  "startSample",
                                  "endSample"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "transcript-span"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "tokenStart": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "tokenEnd": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "exactText": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "tokenStart",
                                  "tokenEnd",
                                  "exactText"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "document"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "coordinate": {
                                    "type": "object",
                                    "properties": {
                                      "page": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "block": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "line": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "word": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charStart": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charEnd": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId",
                                  "coordinate"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "runtime-event-range"
                                  },
                                  "start": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "end": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "start"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "spatial"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "nodePath": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "position": {
                                    "type": "object",
                                    "properties": {
                                      "space": {
                                        "type": "string",
                                        "enum": [
                                          "world",
                                          "local"
                                        ]
                                      },
                                      "x": {
                                        "type": "number"
                                      },
                                      "y": {
                                        "type": "number"
                                      },
                                      "z": {
                                        "type": "number"
                                      },
                                      "units": {
                                        "default": "meters",
                                        "type": "string",
                                        "const": "meters"
                                      }
                                    },
                                    "required": [
                                      "space",
                                      "x",
                                      "y",
                                      "z",
                                      "units"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "compound"
                                  },
                                  "components": {
                                    "minItems": 2,
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "frame-range"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "startFrame": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "endFrame": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "startFrame",
                                            "endFrame"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "frame-region"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "frame": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "region": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "width": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                },
                                                "height": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y",
                                                "width",
                                                "height"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "shape": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "rectangle"
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "polygon"
                                                    },
                                                    "points": {
                                                      "minItems": 3,
                                                      "maxItems": 1000,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "points"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "point"
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "point"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "skeleton"
                                                    },
                                                    "convention": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 120
                                                    },
                                                    "joints": {
                                                      "minItems": 1,
                                                      "maxItems": 200,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "name": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 80
                                                          },
                                                          "point": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          "observed": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "point",
                                                          "observed"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "bones": {
                                                      "maxItems": 400,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "array",
                                                        "prefixItems": [
                                                          {
                                                            "type": "integer",
                                                            "minimum": 0,
                                                            "maximum": 9007199254740991
                                                          },
                                                          {
                                                            "type": "integer",
                                                            "minimum": 0,
                                                            "maximum": 9007199254740991
                                                          }
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "convention",
                                                    "joints",
                                                    "bones"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "mask"
                                                    },
                                                    "objectKey": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 1024
                                                    },
                                                    "contentHash": {
                                                      "type": "string",
                                                      "pattern": "^sha256:[0-9a-f]{64}$"
                                                    },
                                                    "coverageOfBox": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "objectKey",
                                                    "contentHash",
                                                    "coverageOfBox"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "frame",
                                            "region"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "tracked-region"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "keyframes": {
                                              "minItems": 2,
                                              "maxItems": 10000,
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "properties": {
                                                  "frame": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  },
                                                  "region": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "width": {
                                                        "type": "number",
                                                        "exclusiveMinimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "height": {
                                                        "type": "number",
                                                        "exclusiveMinimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y",
                                                      "width",
                                                      "height"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  "shape": {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "rectangle"
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "polygon"
                                                          },
                                                          "points": {
                                                            "minItems": 3,
                                                            "maxItems": 1000,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "properties": {
                                                                "x": {
                                                                  "type": "number",
                                                                  "minimum": 0,
                                                                  "maximum": 1
                                                                },
                                                                "y": {
                                                                  "type": "number",
                                                                  "minimum": 0,
                                                                  "maximum": 1
                                                                }
                                                              },
                                                              "required": [
                                                                "x",
                                                                "y"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "points"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "point"
                                                          },
                                                          "point": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "point"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "skeleton"
                                                          },
                                                          "convention": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 120
                                                          },
                                                          "joints": {
                                                            "minItems": 1,
                                                            "maxItems": 200,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "properties": {
                                                                "name": {
                                                                  "type": "string",
                                                                  "minLength": 1,
                                                                  "maxLength": 80
                                                                },
                                                                "point": {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "x": {
                                                                      "type": "number",
                                                                      "minimum": 0,
                                                                      "maximum": 1
                                                                    },
                                                                    "y": {
                                                                      "type": "number",
                                                                      "minimum": 0,
                                                                      "maximum": 1
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "x",
                                                                    "y"
                                                                  ],
                                                                  "additionalProperties": false
                                                                },
                                                                "observed": {
                                                                  "type": "boolean"
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "point",
                                                                "observed"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          },
                                                          "bones": {
                                                            "maxItems": 400,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "array",
                                                              "prefixItems": [
                                                                {
                                                                  "type": "integer",
                                                                  "minimum": 0,
                                                                  "maximum": 9007199254740991
                                                                },
                                                                {
                                                                  "type": "integer",
                                                                  "minimum": 0,
                                                                  "maximum": 9007199254740991
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "convention",
                                                          "joints",
                                                          "bones"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "mask"
                                                          },
                                                          "objectKey": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 1024
                                                          },
                                                          "contentHash": {
                                                            "type": "string",
                                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                                          },
                                                          "coverageOfBox": {
                                                            "type": "number",
                                                            "exclusiveMinimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "objectKey",
                                                          "contentHash",
                                                          "coverageOfBox"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "frame",
                                                  "region"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "interpolation": {
                                              "type": "string",
                                              "enum": [
                                                "none",
                                                "hold",
                                                "linear"
                                              ]
                                            },
                                            "subject": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "keyframes",
                                            "interpolation",
                                            "subject"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "waveform-interval"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "sampleRateHz": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 1536000
                                            },
                                            "startSample": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "endSample": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "channelIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 255
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "sampleRateHz",
                                            "startSample",
                                            "endSample"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "transcript-span"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "tokenStart": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "tokenEnd": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "exactText": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 5000
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "tokenStart",
                                            "tokenEnd",
                                            "exactText"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "document"
                                            },
                                            "assetId": {
                                              "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)$"
                                            },
                                            "coordinate": {
                                              "type": "object",
                                              "properties": {
                                                "page": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 9007199254740991
                                                },
                                                "block": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "line": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "word": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "charStart": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "charEnd": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              },
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "assetId",
                                            "coordinate"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "runtime-event-range"
                                            },
                                            "start": {
                                              "type": "object",
                                              "properties": {
                                                "sessionId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                },
                                                "eventIndex": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "monotonic": {
                                                  "type": "object",
                                                  "properties": {
                                                    "clockDomain": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 160
                                                    },
                                                    "nanoseconds": {
                                                      "type": "string",
                                                      "pattern": "^\\d{1,19}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "clockDomain",
                                                    "nanoseconds"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "wallClock": {
                                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                }
                                              },
                                              "required": [
                                                "sessionId"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "end": {
                                              "type": "object",
                                              "properties": {
                                                "sessionId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                },
                                                "eventIndex": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "monotonic": {
                                                  "type": "object",
                                                  "properties": {
                                                    "clockDomain": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 160
                                                    },
                                                    "nanoseconds": {
                                                      "type": "string",
                                                      "pattern": "^\\d{1,19}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "clockDomain",
                                                    "nanoseconds"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "wallClock": {
                                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                }
                                              },
                                              "required": [
                                                "sessionId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "start"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "spatial"
                                            },
                                            "assetId": {
                                              "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)$"
                                            },
                                            "nodePath": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 1024
                                            },
                                            "position": {
                                              "type": "object",
                                              "properties": {
                                                "space": {
                                                  "type": "string",
                                                  "enum": [
                                                    "world",
                                                    "local"
                                                  ]
                                                },
                                                "x": {
                                                  "type": "number"
                                                },
                                                "y": {
                                                  "type": "number"
                                                },
                                                "z": {
                                                  "type": "number"
                                                },
                                                "units": {
                                                  "default": "meters",
                                                  "type": "string",
                                                  "const": "meters"
                                                }
                                              },
                                              "required": [
                                                "space",
                                                "x",
                                                "y",
                                                "z",
                                                "units"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "assetId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "entityId": {
                                    "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)$"
                                  },
                                  "conjunctionNote": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "components",
                                  "conjunctionNote"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "permittedRepresentations": {
                            "minItems": 1,
                            "maxItems": 7,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "thumbnail",
                                "crop",
                                "waveform",
                                "feature-vector",
                                "transcript-excerpt",
                                "provider-deep-link",
                                "metadata-only"
                              ]
                            }
                          },
                          "acquisition": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "acquiredAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "processor": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "method",
                              "acquiredAt"
                            ],
                            "additionalProperties": false
                          },
                          "derivation": {
                            "type": "object",
                            "properties": {
                              "parentAnchorIds": {
                                "minItems": 1,
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "processor": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "parentAnchorIds",
                              "processor",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          },
                          "rightsGrantIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "scope": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "instant"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "frame"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "time-range"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "beat"
                                  },
                                  "opensWith": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "closesWith": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "kind",
                                  "opensWith",
                                  "closesWith"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "recurring-motif"
                                  },
                                  "recurs": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "recurs"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "discontinuous-interval"
                                  },
                                  "interruptedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "interruptedBy"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "linked-moment"
                                  },
                                  "oneMomentBecause": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "oneMomentBecause"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "entity"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "property"
                                  },
                                  "property": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "property"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "proxyMapping": {
                            "type": "object",
                            "properties": {
                              "viaAssetId": {
                                "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)$"
                              },
                              "proxyStartFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "proxyEndFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "exact": {
                                "type": "boolean"
                              },
                              "maxMasterFramesPerProxyFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "viaAssetId",
                              "proxyStartFrame",
                              "proxyEndFrame",
                              "exact",
                              "maxMasterFramesPerProxyFrame"
                            ],
                            "additionalProperties": false
                          },
                          "migratedFromAnchorId": {
                            "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)$"
                          },
                          "deepLinkPath": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2048
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "editionId",
                          "technicalRevisionHash",
                          "locator",
                          "permittedRepresentations",
                          "acquisition",
                          "rightsGrantIds",
                          "reviewState",
                          "deepLinkPath"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "anchors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/anchors/{anchorId}": {
      "get": {
        "operationId": "getAnchor",
        "parameters": [
          {
            "name": "anchorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "281b9a5a-4f9f-4eea-a17a-60a7b318f049"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "anchor": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "assetId": {
                          "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)$"
                        },
                        "sessionId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "editionId": {
                          "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)$"
                        },
                        "technicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "locator": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-range"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "frame-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "frame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "region": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                },
                                "shape": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "rectangle"
                                        }
                                      },
                                      "required": [
                                        "shapeKind"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "polygon"
                                        },
                                        "points": {
                                          "minItems": 3,
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "points"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "point"
                                        },
                                        "point": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "point"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "skeleton"
                                        },
                                        "convention": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "joints": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "name": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "observed": {
                                                "type": "boolean"
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "point",
                                              "observed"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "bones": {
                                          "maxItems": 400,
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "prefixItems": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "convention",
                                        "joints",
                                        "bones"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "shapeKind": {
                                          "type": "string",
                                          "const": "mask"
                                        },
                                        "objectKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        },
                                        "contentHash": {
                                          "type": "string",
                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                        },
                                        "coverageOfBox": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "shapeKind",
                                        "objectKey",
                                        "contentHash",
                                        "coverageOfBox"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "frame",
                                "region"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "tracked-region"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "frameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "keyframes": {
                                  "minItems": 2,
                                  "maxItems": 10000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "frame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "region": {
                                        "type": "object",
                                        "properties": {
                                          "x": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "y": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "width": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          },
                                          "height": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "x",
                                          "y",
                                          "width",
                                          "height"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "shape": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "rectangle"
                                              }
                                            },
                                            "required": [
                                              "shapeKind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "polygon"
                                              },
                                              "points": {
                                                "minItems": 3,
                                                "maxItems": 1000,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "points"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "point"
                                              },
                                              "point": {
                                                "type": "object",
                                                "properties": {
                                                  "x": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  },
                                                  "y": {
                                                    "type": "number",
                                                    "minimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "x",
                                                  "y"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "point"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "skeleton"
                                              },
                                              "convention": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "joints": {
                                                "minItems": 1,
                                                "maxItems": 200,
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "properties": {
                                                    "name": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    "observed": {
                                                      "type": "boolean"
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "point",
                                                    "observed"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "bones": {
                                                "maxItems": 400,
                                                "type": "array",
                                                "items": {
                                                  "type": "array",
                                                  "prefixItems": [
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    },
                                                    {
                                                      "type": "integer",
                                                      "minimum": 0,
                                                      "maximum": 9007199254740991
                                                    }
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "convention",
                                              "joints",
                                              "bones"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "shapeKind": {
                                                "type": "string",
                                                "const": "mask"
                                              },
                                              "objectKey": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1024
                                              },
                                              "contentHash": {
                                                "type": "string",
                                                "pattern": "^sha256:[0-9a-f]{64}$"
                                              },
                                              "coverageOfBox": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "shapeKind",
                                              "objectKey",
                                              "contentHash",
                                              "coverageOfBox"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "frame",
                                      "region"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "interpolation": {
                                  "type": "string",
                                  "enum": [
                                    "none",
                                    "hold",
                                    "linear"
                                  ]
                                },
                                "subject": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "frameRate",
                                "keyframes",
                                "interpolation",
                                "subject"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "waveform-interval"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "sampleRateHz": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1536000
                                },
                                "startSample": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endSample": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "channelIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 255
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "sampleRateHz",
                                "startSample",
                                "endSample"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "transcript-span"
                                },
                                "trackId": {
                                  "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)$"
                                },
                                "tokenStart": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "tokenEnd": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "exactText": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "trackId",
                                "tokenStart",
                                "tokenEnd",
                                "exactText"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "document"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "coordinate": {
                                  "type": "object",
                                  "properties": {
                                    "page": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "block": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "line": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "word": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charStart": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "charEnd": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId",
                                "coordinate"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "runtime-event-range"
                                },
                                "start": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                },
                                "end": {
                                  "type": "object",
                                  "properties": {
                                    "sessionId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "eventIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "monotonic": {
                                      "type": "object",
                                      "properties": {
                                        "clockDomain": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "nanoseconds": {
                                          "type": "string",
                                          "pattern": "^\\d{1,19}$"
                                        }
                                      },
                                      "required": [
                                        "clockDomain",
                                        "nanoseconds"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "wallClock": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "sessionId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "start"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "spatial"
                                },
                                "assetId": {
                                  "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)$"
                                },
                                "nodePath": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "position": {
                                  "type": "object",
                                  "properties": {
                                    "space": {
                                      "type": "string",
                                      "enum": [
                                        "world",
                                        "local"
                                      ]
                                    },
                                    "x": {
                                      "type": "number"
                                    },
                                    "y": {
                                      "type": "number"
                                    },
                                    "z": {
                                      "type": "number"
                                    },
                                    "units": {
                                      "default": "meters",
                                      "type": "string",
                                      "const": "meters"
                                    }
                                  },
                                  "required": [
                                    "space",
                                    "x",
                                    "y",
                                    "z",
                                    "units"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "locatorKind",
                                "assetId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "locatorKind": {
                                  "type": "string",
                                  "const": "compound"
                                },
                                "components": {
                                  "minItems": 2,
                                  "maxItems": 10,
                                  "type": "array",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "frame-range"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "startFrame": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "endFrame": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "startFrame",
                                          "endFrame"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "frame-region"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "frame": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "region": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "width": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              },
                                              "height": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y",
                                              "width",
                                              "height"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "shape": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "rectangle"
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "polygon"
                                                  },
                                                  "points": {
                                                    "minItems": 3,
                                                    "maxItems": 1000,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "points"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "point"
                                                  },
                                                  "point": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "point"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "skeleton"
                                                  },
                                                  "convention": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 120
                                                  },
                                                  "joints": {
                                                    "minItems": 1,
                                                    "maxItems": 200,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "object",
                                                      "properties": {
                                                        "name": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 80
                                                        },
                                                        "point": {
                                                          "type": "object",
                                                          "properties": {
                                                            "x": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            },
                                                            "y": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            }
                                                          },
                                                          "required": [
                                                            "x",
                                                            "y"
                                                          ],
                                                          "additionalProperties": false
                                                        },
                                                        "observed": {
                                                          "type": "boolean"
                                                        }
                                                      },
                                                      "required": [
                                                        "name",
                                                        "point",
                                                        "observed"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  },
                                                  "bones": {
                                                    "maxItems": 400,
                                                    "type": "array",
                                                    "items": {
                                                      "type": "array",
                                                      "prefixItems": [
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        },
                                                        {
                                                          "type": "integer",
                                                          "minimum": 0,
                                                          "maximum": 9007199254740991
                                                        }
                                                      ]
                                                    }
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "convention",
                                                  "joints",
                                                  "bones"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "shapeKind": {
                                                    "type": "string",
                                                    "const": "mask"
                                                  },
                                                  "objectKey": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 1024
                                                  },
                                                  "contentHash": {
                                                    "type": "string",
                                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                                  },
                                                  "coverageOfBox": {
                                                    "type": "number",
                                                    "exclusiveMinimum": 0,
                                                    "maximum": 1
                                                  }
                                                },
                                                "required": [
                                                  "shapeKind",
                                                  "objectKey",
                                                  "contentHash",
                                                  "coverageOfBox"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "frame",
                                          "region"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "tracked-region"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "frameRate": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 240000
                                              },
                                              "denominator": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 1001
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "keyframes": {
                                            "minItems": 2,
                                            "maxItems": 10000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "frame": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "region": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "width": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "height": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y",
                                                    "width",
                                                    "height"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "shape": {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "rectangle"
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "polygon"
                                                        },
                                                        "points": {
                                                          "minItems": 3,
                                                          "maxItems": 1000,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "points"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "point"
                                                        },
                                                        "point": {
                                                          "type": "object",
                                                          "properties": {
                                                            "x": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            },
                                                            "y": {
                                                              "type": "number",
                                                              "minimum": 0,
                                                              "maximum": 1
                                                            }
                                                          },
                                                          "required": [
                                                            "x",
                                                            "y"
                                                          ],
                                                          "additionalProperties": false
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "point"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "skeleton"
                                                        },
                                                        "convention": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 120
                                                        },
                                                        "joints": {
                                                          "minItems": 1,
                                                          "maxItems": 200,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "object",
                                                            "properties": {
                                                              "name": {
                                                                "type": "string",
                                                                "minLength": 1,
                                                                "maxLength": 80
                                                              },
                                                              "point": {
                                                                "type": "object",
                                                                "properties": {
                                                                  "x": {
                                                                    "type": "number",
                                                                    "minimum": 0,
                                                                    "maximum": 1
                                                                  },
                                                                  "y": {
                                                                    "type": "number",
                                                                    "minimum": 0,
                                                                    "maximum": 1
                                                                  }
                                                                },
                                                                "required": [
                                                                  "x",
                                                                  "y"
                                                                ],
                                                                "additionalProperties": false
                                                              },
                                                              "observed": {
                                                                "type": "boolean"
                                                              }
                                                            },
                                                            "required": [
                                                              "name",
                                                              "point",
                                                              "observed"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "bones": {
                                                          "maxItems": 400,
                                                          "type": "array",
                                                          "items": {
                                                            "type": "array",
                                                            "prefixItems": [
                                                              {
                                                                "type": "integer",
                                                                "minimum": 0,
                                                                "maximum": 9007199254740991
                                                              },
                                                              {
                                                                "type": "integer",
                                                                "minimum": 0,
                                                                "maximum": 9007199254740991
                                                              }
                                                            ]
                                                          }
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "convention",
                                                        "joints",
                                                        "bones"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "shapeKind": {
                                                          "type": "string",
                                                          "const": "mask"
                                                        },
                                                        "objectKey": {
                                                          "type": "string",
                                                          "minLength": 1,
                                                          "maxLength": 1024
                                                        },
                                                        "contentHash": {
                                                          "type": "string",
                                                          "pattern": "^sha256:[0-9a-f]{64}$"
                                                        },
                                                        "coverageOfBox": {
                                                          "type": "number",
                                                          "exclusiveMinimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "shapeKind",
                                                        "objectKey",
                                                        "contentHash",
                                                        "coverageOfBox"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "frame",
                                                "region"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "interpolation": {
                                            "type": "string",
                                            "enum": [
                                              "none",
                                              "hold",
                                              "linear"
                                            ]
                                          },
                                          "subject": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 300
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "frameRate",
                                          "keyframes",
                                          "interpolation",
                                          "subject"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "waveform-interval"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "sampleRateHz": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 1536000
                                          },
                                          "startSample": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "endSample": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          },
                                          "channelIndex": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 255
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "sampleRateHz",
                                          "startSample",
                                          "endSample"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "transcript-span"
                                          },
                                          "trackId": {
                                            "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)$"
                                          },
                                          "tokenStart": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "tokenEnd": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 9007199254740991
                                          },
                                          "exactText": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 5000
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "trackId",
                                          "tokenStart",
                                          "tokenEnd",
                                          "exactText"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "document"
                                          },
                                          "assetId": {
                                            "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)$"
                                          },
                                          "coordinate": {
                                            "type": "object",
                                            "properties": {
                                              "page": {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 9007199254740991
                                              },
                                              "block": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "line": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "word": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "charStart": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "charEnd": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              }
                                            },
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "assetId",
                                          "coordinate"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "runtime-event-range"
                                          },
                                          "start": {
                                            "type": "object",
                                            "properties": {
                                              "sessionId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              },
                                              "eventIndex": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "monotonic": {
                                                "type": "object",
                                                "properties": {
                                                  "clockDomain": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 160
                                                  },
                                                  "nanoseconds": {
                                                    "type": "string",
                                                    "pattern": "^\\d{1,19}$"
                                                  }
                                                },
                                                "required": [
                                                  "clockDomain",
                                                  "nanoseconds"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "wallClock": {
                                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                              }
                                            },
                                            "required": [
                                              "sessionId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "end": {
                                            "type": "object",
                                            "properties": {
                                              "sessionId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              },
                                              "eventIndex": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "monotonic": {
                                                "type": "object",
                                                "properties": {
                                                  "clockDomain": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 160
                                                  },
                                                  "nanoseconds": {
                                                    "type": "string",
                                                    "pattern": "^\\d{1,19}$"
                                                  }
                                                },
                                                "required": [
                                                  "clockDomain",
                                                  "nanoseconds"
                                                ],
                                                "additionalProperties": false
                                              },
                                              "wallClock": {
                                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                              }
                                            },
                                            "required": [
                                              "sessionId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "start"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "locatorKind": {
                                            "type": "string",
                                            "const": "spatial"
                                          },
                                          "assetId": {
                                            "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)$"
                                          },
                                          "nodePath": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "position": {
                                            "type": "object",
                                            "properties": {
                                              "space": {
                                                "type": "string",
                                                "enum": [
                                                  "world",
                                                  "local"
                                                ]
                                              },
                                              "x": {
                                                "type": "number"
                                              },
                                              "y": {
                                                "type": "number"
                                              },
                                              "z": {
                                                "type": "number"
                                              },
                                              "units": {
                                                "default": "meters",
                                                "type": "string",
                                                "const": "meters"
                                              }
                                            },
                                            "required": [
                                              "space",
                                              "x",
                                              "y",
                                              "z",
                                              "units"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "locatorKind",
                                          "assetId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "entityId": {
                                  "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)$"
                                },
                                "conjunctionNote": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "locatorKind",
                                "components",
                                "conjunctionNote"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "permittedRepresentations": {
                          "minItems": 1,
                          "maxItems": 7,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "crop",
                              "waveform",
                              "feature-vector",
                              "transcript-excerpt",
                              "provider-deep-link",
                              "metadata-only"
                            ]
                          }
                        },
                        "acquisition": {
                          "type": "object",
                          "properties": {
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "acquiredAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "processor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "method",
                            "acquiredAt"
                          ],
                          "additionalProperties": false
                        },
                        "derivation": {
                          "type": "object",
                          "properties": {
                            "parentAnchorIds": {
                              "minItems": 1,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "processor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "codeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "modelVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "configuration": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {}
                            }
                          },
                          "required": [
                            "parentAnchorIds",
                            "processor",
                            "codeVersion",
                            "configuration"
                          ],
                          "additionalProperties": false
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "scope": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "instant"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "frame"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "time-range"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "beat"
                                },
                                "opensWith": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "closesWith": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "kind",
                                "opensWith",
                                "closesWith"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "recurring-motif"
                                },
                                "recurs": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "recurs"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "discontinuous-interval"
                                },
                                "interruptedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "interruptedBy"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "linked-moment"
                                },
                                "oneMomentBecause": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "kind",
                                "oneMomentBecause"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "entity"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "property"
                                },
                                "property": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "property"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "proxyMapping": {
                          "type": "object",
                          "properties": {
                            "viaAssetId": {
                              "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)$"
                            },
                            "proxyStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "proxyEndFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "exact": {
                              "type": "boolean"
                            },
                            "maxMasterFramesPerProxyFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "viaAssetId",
                            "proxyStartFrame",
                            "proxyEndFrame",
                            "exact",
                            "maxMasterFramesPerProxyFrame"
                          ],
                          "additionalProperties": false
                        },
                        "migratedFromAnchorId": {
                          "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)$"
                        },
                        "deepLinkPath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2048
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "technicalRevisionHash",
                        "locator",
                        "permittedRepresentations",
                        "acquisition",
                        "rightsGrantIds",
                        "reviewState",
                        "deepLinkPath"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "anchor"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "anchor": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.4.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "workId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "assetId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "editionId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                    "locator": {
                      "locatorKind": "frame-range",
                      "trackId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                      "frameRate": {
                        "numerator": 24,
                        "denominator": 1
                      },
                      "startFrame": 1000,
                      "endFrame": 1240
                    },
                    "permittedRepresentations": [
                      "thumbnail"
                    ],
                    "acquisition": {
                      "method": "manual-selection",
                      "acquiredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "rightsGrantIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "reviewState": "accepted",
                    "deepLinkPath": "/studio/study/p/x/source/y?frames=1000-1240"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analysis-capabilities": {
      "get": {
        "operationId": "analysisCapabilities",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "methods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "method": {
                            "type": "string",
                            "enum": [
                              "shot-detection",
                              "scene-grouping",
                              "scene-segmentation",
                              "camera-motion",
                              "programme-loudness",
                              "causal-attribution",
                              "project-shot-scale",
                              "speech-transcription",
                              "object-detection",
                              "speaker-diarization",
                              "pose-estimation"
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "available",
                              "unavailable"
                            ]
                          },
                          "featureKind": {
                            "type": "string"
                          },
                          "processor": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "codeVersion": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion"
                            ],
                            "additionalProperties": false
                          },
                          "model": {
                            "type": "object",
                            "properties": {
                              "modelId": {
                                "type": "string"
                              },
                              "modelVersion": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "modelId",
                              "modelVersion"
                            ],
                            "additionalProperties": false
                          },
                          "appliesTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "description": {
                            "type": "string"
                          },
                          "biometric": {
                            "type": "boolean"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "method",
                          "status",
                          "featureKind",
                          "processor",
                          "appliesTo",
                          "description",
                          "biometric"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "methods"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/lens-capabilities": {
      "post": {
        "operationId": "lensCapabilities",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "sourceType": {
                    "type": "string",
                    "enum": [
                      "film",
                      "video",
                      "game",
                      "document",
                      "image",
                      "audio",
                      "3d-scene"
                    ]
                  },
                  "hardware": {
                    "type": "string",
                    "enum": [
                      "cpu",
                      "gpu-basic",
                      "gpu-advanced"
                    ]
                  },
                  "availableTracks": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "grantedRightsActions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "language": {
                    "type": "string",
                    "minLength": 1
                  },
                  "requestedQualityTier": {
                    "type": "string",
                    "enum": [
                      "preview",
                      "standard",
                      "high",
                      "reference"
                    ]
                  },
                  "lensId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "policy": {
                    "type": "object",
                    "properties": {
                      "prohibitedRightsActions": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "prohibitedSourceTypes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "film",
                            "video",
                            "game",
                            "document",
                            "image",
                            "audio",
                            "3d-scene"
                          ]
                        }
                      },
                      "maxCostClass": {
                        "type": "string",
                        "enum": [
                          "trivial",
                          "light",
                          "moderate",
                          "heavy",
                          "reference"
                        ]
                      },
                      "prohibitedRenderers": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "timeline-overlay",
                            "region-canvas",
                            "palette-strip",
                            "relationship-graph",
                            "comparison-matrix",
                            "transcript",
                            "structured-table",
                            "waveform",
                            "none"
                          ]
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "sourceType",
                  "hardware",
                  "availableTracks",
                  "grantedRightsActions",
                  "requestedQualityTier"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "lenses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "lensId": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "available",
                              "disabled",
                              "unsupported",
                              "policy-incompatible",
                              "unavailable"
                            ]
                          },
                          "automationAvailable": {
                            "type": "boolean"
                          },
                          "costClass": {
                            "type": "string",
                            "enum": [
                              "trivial",
                              "light",
                              "moderate",
                              "heavy",
                              "reference"
                            ]
                          },
                          "renderer": {
                            "type": "string",
                            "enum": [
                              "timeline-overlay",
                              "region-canvas",
                              "palette-strip",
                              "relationship-graph",
                              "comparison-matrix",
                              "transcript",
                              "structured-table",
                              "waveform",
                              "none"
                            ]
                          },
                          "outputEpistemicTypes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "source-fact",
                                "detection",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement",
                                "practice-result"
                              ]
                            }
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "lensId",
                          "displayName",
                          "status",
                          "automationAvailable",
                          "costClass",
                          "renderer",
                          "outputEpistemicTypes",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "resolution": {
                      "type": "object",
                      "properties": {
                        "lensId": {
                          "type": "string"
                        },
                        "admitted": {
                          "type": "boolean"
                        },
                        "refusal": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "unknown",
                                "disabled",
                                "unsupported",
                                "policy-incompatible",
                                "unavailable"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "reasons": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "automationAvailable": {
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "lensId",
                        "admitted",
                        "refusal",
                        "reasons",
                        "automationAvailable"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "lenses"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/analyses/estimate": {
      "post": {
        "operationId": "estimateAnalysis",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "methods": {
                    "minItems": 1,
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "shot-detection",
                        "scene-grouping",
                        "scene-segmentation",
                        "camera-motion",
                        "programme-loudness",
                        "causal-attribution",
                        "project-shot-scale",
                        "speech-transcription",
                        "object-detection",
                        "speaker-diarization",
                        "pose-estimation"
                      ]
                    }
                  },
                  "qualityTier": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "standard",
                      "high"
                    ]
                  }
                },
                "required": [
                  "projectId",
                  "methods",
                  "qualityTier"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "estimatedUsd": {
                      "type": "number",
                      "minimum": 0
                    },
                    "qualityTier": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "standard",
                        "high"
                      ]
                    },
                    "durationSeconds": {
                      "type": "number",
                      "minimum": 0
                    },
                    "perMethod": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "method": {
                            "type": "string",
                            "enum": [
                              "shot-detection",
                              "scene-grouping",
                              "scene-segmentation",
                              "camera-motion",
                              "programme-loudness",
                              "causal-attribution",
                              "project-shot-scale",
                              "speech-transcription",
                              "object-detection",
                              "speaker-diarization",
                              "pose-estimation"
                            ]
                          },
                          "estimatedUsd": {
                            "type": "number",
                            "minimum": 0
                          },
                          "available": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "method",
                          "estimatedUsd",
                          "available"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "estimatedUsd",
                    "qualityTier",
                    "durationSeconds",
                    "perMethod"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/editions/{editionId}/analyses": {
      "post": {
        "operationId": "requestAnalysis",
        "parameters": [
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "methods": {
                    "minItems": 1,
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "shot-detection",
                        "scene-grouping",
                        "scene-segmentation",
                        "camera-motion",
                        "programme-loudness",
                        "causal-attribution",
                        "project-shot-scale",
                        "speech-transcription",
                        "object-detection",
                        "speaker-diarization",
                        "pose-estimation"
                      ]
                    }
                  },
                  "qualityTier": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "standard",
                      "high"
                    ]
                  },
                  "comparison": {
                    "type": "object",
                    "properties": {
                      "comparisonSetId": {
                        "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)$"
                      },
                      "covariates": {
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "role": {
                              "type": "string",
                              "enum": [
                                "confounder",
                                "mediator",
                                "collider",
                                "unclassified"
                              ]
                            },
                            "basis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "key",
                            "role",
                            "basis"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "comparisonSetId",
                      "covariates"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "methods",
                  "qualityTier"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "run": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "pipelineVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "processors": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "sourceRevisions": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              }
                            },
                            "required": [
                              "editionId",
                              "technicalRevisionHash"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cost": {
                          "type": "object",
                          "properties": {
                            "estimatedUsd": {
                              "type": "number",
                              "minimum": 0
                            },
                            "actualUsd": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "estimatedUsd",
                            "actualUsd"
                          ],
                          "additionalProperties": false
                        },
                        "qualityTier": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "standard",
                            "high"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "queued",
                            "running",
                            "succeeded",
                            "partially-succeeded",
                            "failed",
                            "cancelled"
                          ]
                        },
                        "retryCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20
                        },
                        "outputRefIds": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "cancellation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cancelledBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "cancelledAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "cancelledBy",
                                "reason",
                                "cancelledAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "failures": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stage": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "retryable": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "stage",
                              "reason",
                              "occurredAt",
                              "retryable"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "pipelineVersion",
                        "processors",
                        "sourceRevisions",
                        "cost",
                        "qualityTier",
                        "lifecycle",
                        "retryCount",
                        "outputRefIds",
                        "cancellation",
                        "failures"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "run"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analyses/{runId}/execute": {
      "post": {
        "operationId": "executeAnalysis",
        "parameters": [
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a2933974-03dc-4b5c-ad06-d0ad378cb685"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "run": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "pipelineVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "processors": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "sourceRevisions": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              }
                            },
                            "required": [
                              "editionId",
                              "technicalRevisionHash"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cost": {
                          "type": "object",
                          "properties": {
                            "estimatedUsd": {
                              "type": "number",
                              "minimum": 0
                            },
                            "actualUsd": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "estimatedUsd",
                            "actualUsd"
                          ],
                          "additionalProperties": false
                        },
                        "qualityTier": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "standard",
                            "high"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "queued",
                            "running",
                            "succeeded",
                            "partially-succeeded",
                            "failed",
                            "cancelled"
                          ]
                        },
                        "retryCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20
                        },
                        "outputRefIds": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "cancellation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cancelledBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "cancelledAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "cancelledBy",
                                "reason",
                                "cancelledAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "failures": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stage": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "retryable": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "stage",
                              "reason",
                              "occurredAt",
                              "retryable"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "pipelineVersion",
                        "processors",
                        "sourceRevisions",
                        "cost",
                        "qualityTier",
                        "lifecycle",
                        "retryCount",
                        "outputRefIds",
                        "cancellation",
                        "failures"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "run"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analyses/{runId}/cancel": {
      "post": {
        "operationId": "cancelAnalysis",
        "parameters": [
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a2933974-03dc-4b5c-ad06-d0ad378cb685"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "run": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "pipelineVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "processors": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "sourceRevisions": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              }
                            },
                            "required": [
                              "editionId",
                              "technicalRevisionHash"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cost": {
                          "type": "object",
                          "properties": {
                            "estimatedUsd": {
                              "type": "number",
                              "minimum": 0
                            },
                            "actualUsd": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "estimatedUsd",
                            "actualUsd"
                          ],
                          "additionalProperties": false
                        },
                        "qualityTier": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "standard",
                            "high"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "queued",
                            "running",
                            "succeeded",
                            "partially-succeeded",
                            "failed",
                            "cancelled"
                          ]
                        },
                        "retryCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20
                        },
                        "outputRefIds": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "cancellation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cancelledBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "cancelledAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "cancelledBy",
                                "reason",
                                "cancelledAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "failures": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stage": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "retryable": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "stage",
                              "reason",
                              "occurredAt",
                              "retryable"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "pipelineVersion",
                        "processors",
                        "sourceRevisions",
                        "cost",
                        "qualityTier",
                        "lifecycle",
                        "retryCount",
                        "outputRefIds",
                        "cancellation",
                        "failures"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "run"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analyses/{runId}": {
      "get": {
        "operationId": "readAnalysis",
        "parameters": [
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a2933974-03dc-4b5c-ad06-d0ad378cb685"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "run": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "pipelineVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "processors": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "sourceRevisions": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              }
                            },
                            "required": [
                              "editionId",
                              "technicalRevisionHash"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cost": {
                          "type": "object",
                          "properties": {
                            "estimatedUsd": {
                              "type": "number",
                              "minimum": 0
                            },
                            "actualUsd": {
                              "anyOf": [
                                {
                                  "type": "number",
                                  "minimum": 0
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "estimatedUsd",
                            "actualUsd"
                          ],
                          "additionalProperties": false
                        },
                        "qualityTier": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "standard",
                            "high"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "queued",
                            "running",
                            "succeeded",
                            "partially-succeeded",
                            "failed",
                            "cancelled"
                          ]
                        },
                        "retryCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20
                        },
                        "outputRefIds": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "cancellation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cancelledBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "cancelledAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "cancelledBy",
                                "reason",
                                "cancelledAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "failures": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stage": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "retryable": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "stage",
                              "reason",
                              "occurredAt",
                              "retryable"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "pipelineVersion",
                        "processors",
                        "sourceRevisions",
                        "cost",
                        "qualityTier",
                        "lifecycle",
                        "retryCount",
                        "outputRefIds",
                        "cancellation",
                        "failures"
                      ],
                      "additionalProperties": false
                    },
                    "detections": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "featureKind": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "featurePayload": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          },
                          "processor": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "required": [
                              "name",
                              "codeVersion"
                            ],
                            "additionalProperties": false
                          },
                          "model": {
                            "type": "object",
                            "properties": {
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "required": [
                              "modelId",
                              "modelVersion"
                            ],
                            "additionalProperties": false
                          },
                          "configuration": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          },
                          "analysisRunId": {
                            "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)$"
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "applicableLimitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "featureKind",
                          "featurePayload",
                          "processor",
                          "configuration",
                          "analysisRunId",
                          "confidence",
                          "anchorIds",
                          "reviewState",
                          "applicableLimitations"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "stale": {
                      "type": "boolean"
                    },
                    "staleEditions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "admittedEditions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "run",
                    "detections",
                    "stale",
                    "staleEditions",
                    "admittedEditions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/analyses": {
      "get": {
        "operationId": "listAnalyses",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "runs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "pipelineVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "processors": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "codeVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "configuration": {
                                  "type": "object",
                                  "propertyNames": {
                                    "type": "string"
                                  },
                                  "additionalProperties": {}
                                }
                              },
                              "required": [
                                "name",
                                "codeVersion",
                                "configuration"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "sourceRevisions": {
                            "minItems": 1,
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "editionId": {
                                  "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)$"
                                },
                                "technicalRevisionHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                }
                              },
                              "required": [
                                "editionId",
                                "technicalRevisionHash"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "cost": {
                            "type": "object",
                            "properties": {
                              "estimatedUsd": {
                                "type": "number",
                                "minimum": 0
                              },
                              "actualUsd": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "estimatedUsd",
                              "actualUsd"
                            ],
                            "additionalProperties": false
                          },
                          "qualityTier": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "standard",
                              "high"
                            ]
                          },
                          "lifecycle": {
                            "type": "string",
                            "enum": [
                              "queued",
                              "running",
                              "succeeded",
                              "partially-succeeded",
                              "failed",
                              "cancelled"
                            ]
                          },
                          "retryCount": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 20
                          },
                          "outputRefIds": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "cancellation": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "cancelledBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  },
                                  "cancelledAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "cancelledBy",
                                  "reason",
                                  "cancelledAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "failures": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "stage": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "retryable": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "stage",
                                "reason",
                                "occurredAt",
                                "retryable"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "pipelineVersion",
                          "processors",
                          "sourceRevisions",
                          "cost",
                          "qualityTier",
                          "lifecycle",
                          "retryCount",
                          "outputRefIds",
                          "cancellation",
                          "failures"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "runs"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analyses/{runIdA}/diff/{runIdB}": {
      "get": {
        "operationId": "diffAnalyses",
        "parameters": [
          {
            "name": "runIdA",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "runIdB",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "runIdA": {
                      "type": "string"
                    },
                    "runIdB": {
                      "type": "string"
                    },
                    "byFeatureKind": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "featureKind": {
                            "type": "string"
                          },
                          "countA": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "countB": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "delta": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "featureKind",
                          "countA",
                          "countB",
                          "delta"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "onlyInA": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "onlyInB": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "common": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "runIdA",
                    "runIdB",
                    "byFeatureKind",
                    "onlyInA",
                    "onlyInB",
                    "common"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities": {
      "post": {
        "operationId": "createEntity",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "character",
                      "performer",
                      "garment",
                      "prop",
                      "location",
                      "camera",
                      "mechanic",
                      "level",
                      "sound",
                      "motif",
                      "domain-owned"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "domainOwnedKind": {
                    "type": "object",
                    "properties": {
                      "domain": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "kind": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      }
                    },
                    "required": [
                      "domain",
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "workScopeNote": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "required": [
                  "projectId",
                  "kind",
                  "name",
                  "workScopeNote"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/update": {
      "post": {
        "operationId": "updateEntity",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "workScopeNote": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}": {
      "get": {
        "operationId": "getEntity",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/entities": {
      "get": {
        "operationId": "listEntities",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "kind",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "character",
                              "performer",
                              "garment",
                              "prop",
                              "location",
                              "camera",
                              "mechanic",
                              "level",
                              "sound",
                              "motif",
                              "domain-owned"
                            ]
                          },
                          "domainOwnedKind": {
                            "type": "object",
                            "properties": {
                              "domain": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "kind": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "required": [
                              "domain",
                              "kind"
                            ],
                            "additionalProperties": false
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 5000
                          },
                          "labelOrigin": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human-entry"
                                  },
                                  "enteredBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "enteredAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "enteredBy",
                                  "enteredAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "source-metadata"
                                  },
                                  "authority": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "reference": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  }
                                },
                                "required": [
                                  "kind",
                                  "authority",
                                  "reference"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "workScopeNote": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "aliases": {
                            "default": [],
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "origin": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human-entry"
                                        },
                                        "enteredBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "enteredAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "enteredBy",
                                        "enteredAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "source-metadata"
                                        },
                                        "authority": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "reference": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1024
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "authority",
                                        "reference"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "name",
                                "origin",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "relationships": {
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "targetEntityId": {
                                  "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)$"
                                },
                                "relation": {
                                  "type": "string",
                                  "enum": [
                                    "portrayed-by",
                                    "part-of",
                                    "variant-of",
                                    "associated-with",
                                    "appears-in"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "recordedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "targetEntityId",
                                "relation",
                                "note",
                                "recordedBy",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "mergedIntoEntityId": {
                            "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)$"
                          },
                          "keptDistinctFromEntityIds": {
                            "default": [],
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "kind",
                          "name",
                          "workScopeNote",
                          "aliases",
                          "relationships",
                          "keptDistinctFromEntityIds"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "entities"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/aliases": {
      "post": {
        "operationId": "addEntityAlias",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/relationships": {
      "post": {
        "operationId": "relateEntities",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "targetEntityId": {
                    "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)$"
                  },
                  "relation": {
                    "type": "string",
                    "enum": [
                      "portrayed-by",
                      "part-of",
                      "variant-of",
                      "associated-with",
                      "appears-in"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "targetEntityId",
                  "relation",
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/keep-distinct": {
      "post": {
        "operationId": "keepEntitiesDistinct",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "distinctFromEntityId": {
                    "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)$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "distinctFromEntityId",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/merge": {
      "post": {
        "operationId": "mergeEntity",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "targetEntityId": {
                    "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)$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "targetEntityId",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "entity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "entity"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "entity": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "kind": "character",
                    "name": "Kikuchiyo",
                    "labelOrigin": {
                      "kind": "human-entry",
                      "enteredBy": "cataloguer-1",
                      "enteredAt": "2026-07-18T10:00:00+00:00"
                    },
                    "workScopeNote": "Seven Samurai only."
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/entities/{entityId}/canonical": {
      "get": {
        "operationId": "resolveEntityCanonical",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ecb304e4-df3e-4c76-a235-a8712e523711"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "requestedEntityId": {
                      "type": "string"
                    },
                    "canonicalEntity": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "performer",
                            "garment",
                            "prop",
                            "location",
                            "camera",
                            "mechanic",
                            "level",
                            "sound",
                            "motif",
                            "domain-owned"
                          ]
                        },
                        "domainOwnedKind": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "domain",
                            "kind"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "labelOrigin": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human-entry"
                                },
                                "enteredBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "enteredAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "enteredBy",
                                "enteredAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "source-metadata"
                                },
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reference": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                }
                              },
                              "required": [
                                "kind",
                                "authority",
                                "reference"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "workScopeNote": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "aliases": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "origin": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human-entry"
                                      },
                                      "enteredBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "enteredAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "enteredBy",
                                      "enteredAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "source-metadata"
                                      },
                                      "authority": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "authority",
                                      "reference"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "name",
                              "origin",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "relationships": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "targetEntityId": {
                                "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)$"
                              },
                              "relation": {
                                "type": "string",
                                "enum": [
                                  "portrayed-by",
                                  "part-of",
                                  "variant-of",
                                  "associated-with",
                                  "appears-in"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "targetEntityId",
                              "relation",
                              "note",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "mergedIntoEntityId": {
                          "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)$"
                        },
                        "keptDistinctFromEntityIds": {
                          "default": [],
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "kind",
                        "name",
                        "workScopeNote",
                        "aliases",
                        "relationships",
                        "keptDistinctFromEntityIds"
                      ],
                      "additionalProperties": false
                    },
                    "redirectChain": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "requestedEntityId",
                    "canonicalEntity",
                    "redirectChain"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/observations": {
      "post": {
        "operationId": "recordObservation",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "anchorIds": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "modality": {
                    "type": "string",
                    "enum": [
                      "visible",
                      "audible",
                      "source-inspectable"
                    ]
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "viewingContext": {
                    "type": "object",
                    "properties": {
                      "firstViewing": {
                        "type": "boolean"
                      },
                      "editionId": {
                        "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)$"
                      },
                      "technicalRevisionHash": {
                        "type": "string",
                        "pattern": "^sha256:[0-9a-f]{64}$"
                      },
                      "playheadSeconds": {
                        "type": "number",
                        "minimum": 0
                      },
                      "disclosure": {
                        "type": "object",
                        "properties": {
                          "structureRevealed": {
                            "type": "boolean"
                          },
                          "revealedUpToSeconds": {
                            "anyOf": [
                              {
                                "type": "number",
                                "minimum": 0
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "structureRevealed",
                          "revealedUpToSeconds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "firstViewing",
                      "editionId",
                      "technicalRevisionHash",
                      "playheadSeconds",
                      "disclosure"
                    ],
                    "additionalProperties": false
                  },
                  "rewatchPass": {
                    "type": "object",
                    "properties": {
                      "focus": {
                        "type": "string",
                        "enum": [
                          "structure",
                          "camera",
                          "performance",
                          "sound",
                          "edit",
                          "costume",
                          "animation",
                          "mechanics"
                        ]
                      }
                    },
                    "required": [
                      "focus"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "anchorIds",
                  "modality",
                  "description",
                  "scope"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "observation": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "modality": {
                          "type": "string",
                          "enum": [
                            "visible",
                            "audible",
                            "source-inspectable"
                          ]
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "viewingContext": {
                          "type": "object",
                          "properties": {
                            "firstViewing": {
                              "type": "boolean"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "technicalRevisionHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "playheadSeconds": {
                              "type": "number",
                              "minimum": 0
                            },
                            "disclosure": {
                              "type": "object",
                              "properties": {
                                "structureRevealed": {
                                  "type": "boolean"
                                },
                                "revealedUpToSeconds": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "structureRevealed",
                                "revealedUpToSeconds"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "firstViewing",
                            "editionId",
                            "technicalRevisionHash",
                            "playheadSeconds",
                            "disclosure"
                          ],
                          "additionalProperties": false
                        },
                        "rewatchPass": {
                          "type": "object",
                          "properties": {
                            "focus": {
                              "type": "string",
                              "enum": [
                                "structure",
                                "camera",
                                "performance",
                                "sound",
                                "edit",
                                "costume",
                                "animation",
                                "mechanics"
                              ]
                            }
                          },
                          "required": [
                            "focus"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "modality",
                        "description",
                        "scope",
                        "author",
                        "anchorIds",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "observation"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "observation": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "modality": "visible",
                    "description": "The banner lowers a half-beat late.",
                    "scope": "This shot only.",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    },
                    "anchorIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "reviewState": "accepted"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/observations/batch": {
      "post": {
        "operationId": "recordObservationsBatch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "observations": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "modality": {
                          "type": "string",
                          "enum": [
                            "visible",
                            "audible",
                            "source-inspectable"
                          ]
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "anchorIds",
                        "modality",
                        "description",
                        "scope"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "observations"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "observations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "modality": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "audible",
                              "source-inspectable"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "viewingContext": {
                            "type": "object",
                            "properties": {
                              "firstViewing": {
                                "type": "boolean"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "playheadSeconds": {
                                "type": "number",
                                "minimum": 0
                              },
                              "disclosure": {
                                "type": "object",
                                "properties": {
                                  "structureRevealed": {
                                    "type": "boolean"
                                  },
                                  "revealedUpToSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "structureRevealed",
                                  "revealedUpToSeconds"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "firstViewing",
                              "editionId",
                              "technicalRevisionHash",
                              "playheadSeconds",
                              "disclosure"
                            ],
                            "additionalProperties": false
                          },
                          "rewatchPass": {
                            "type": "object",
                            "properties": {
                              "focus": {
                                "type": "string",
                                "enum": [
                                  "structure",
                                  "camera",
                                  "performance",
                                  "sound",
                                  "edit",
                                  "costume",
                                  "animation",
                                  "mechanics"
                                ]
                              }
                            },
                            "required": [
                              "focus"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "modality",
                          "description",
                          "scope",
                          "author",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "observations"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/observations/{observationId}/revise": {
      "post": {
        "operationId": "reviseObservation",
        "parameters": [
          {
            "name": "observationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a0afc943-f0c6-40f2-a941-90e450236881"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "modality": {
                    "type": "string",
                    "enum": [
                      "visible",
                      "audible",
                      "source-inspectable"
                    ]
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "scope": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "anchorIds": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "observation": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "modality": {
                          "type": "string",
                          "enum": [
                            "visible",
                            "audible",
                            "source-inspectable"
                          ]
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "viewingContext": {
                          "type": "object",
                          "properties": {
                            "firstViewing": {
                              "type": "boolean"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "technicalRevisionHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "playheadSeconds": {
                              "type": "number",
                              "minimum": 0
                            },
                            "disclosure": {
                              "type": "object",
                              "properties": {
                                "structureRevealed": {
                                  "type": "boolean"
                                },
                                "revealedUpToSeconds": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "structureRevealed",
                                "revealedUpToSeconds"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "firstViewing",
                            "editionId",
                            "technicalRevisionHash",
                            "playheadSeconds",
                            "disclosure"
                          ],
                          "additionalProperties": false
                        },
                        "rewatchPass": {
                          "type": "object",
                          "properties": {
                            "focus": {
                              "type": "string",
                              "enum": [
                                "structure",
                                "camera",
                                "performance",
                                "sound",
                                "edit",
                                "costume",
                                "animation",
                                "mechanics"
                              ]
                            }
                          },
                          "required": [
                            "focus"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "modality",
                        "description",
                        "scope",
                        "author",
                        "anchorIds",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "observation"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "observation": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "modality": "visible",
                    "description": "The banner lowers a half-beat late.",
                    "scope": "This shot only.",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    },
                    "anchorIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "reviewState": "accepted"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/observations/{observationId}": {
      "get": {
        "operationId": "getObservation",
        "parameters": [
          {
            "name": "observationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a0afc943-f0c6-40f2-a941-90e450236881"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "observation": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "modality": {
                          "type": "string",
                          "enum": [
                            "visible",
                            "audible",
                            "source-inspectable"
                          ]
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "scope": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "viewingContext": {
                          "type": "object",
                          "properties": {
                            "firstViewing": {
                              "type": "boolean"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "technicalRevisionHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "playheadSeconds": {
                              "type": "number",
                              "minimum": 0
                            },
                            "disclosure": {
                              "type": "object",
                              "properties": {
                                "structureRevealed": {
                                  "type": "boolean"
                                },
                                "revealedUpToSeconds": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "structureRevealed",
                                "revealedUpToSeconds"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "firstViewing",
                            "editionId",
                            "technicalRevisionHash",
                            "playheadSeconds",
                            "disclosure"
                          ],
                          "additionalProperties": false
                        },
                        "rewatchPass": {
                          "type": "object",
                          "properties": {
                            "focus": {
                              "type": "string",
                              "enum": [
                                "structure",
                                "camera",
                                "performance",
                                "sound",
                                "edit",
                                "costume",
                                "animation",
                                "mechanics"
                              ]
                            }
                          },
                          "required": [
                            "focus"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "modality",
                        "description",
                        "scope",
                        "author",
                        "anchorIds",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "observation"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "observation": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "modality": "visible",
                    "description": "The banner lowers a half-beat late.",
                    "scope": "This shot only.",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    },
                    "anchorIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "reviewState": "accepted"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/observations": {
      "get": {
        "operationId": "listObservations",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "anchor",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "observations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "modality": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "audible",
                              "source-inspectable"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "viewingContext": {
                            "type": "object",
                            "properties": {
                              "firstViewing": {
                                "type": "boolean"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "playheadSeconds": {
                                "type": "number",
                                "minimum": 0
                              },
                              "disclosure": {
                                "type": "object",
                                "properties": {
                                  "structureRevealed": {
                                    "type": "boolean"
                                  },
                                  "revealedUpToSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "structureRevealed",
                                  "revealedUpToSeconds"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "firstViewing",
                              "editionId",
                              "technicalRevisionHash",
                              "playheadSeconds",
                              "disclosure"
                            ],
                            "additionalProperties": false
                          },
                          "rewatchPass": {
                            "type": "object",
                            "properties": {
                              "focus": {
                                "type": "string",
                                "enum": [
                                  "structure",
                                  "camera",
                                  "performance",
                                  "sound",
                                  "edit",
                                  "costume",
                                  "animation",
                                  "mechanics"
                                ]
                              }
                            },
                            "required": [
                              "focus"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "modality",
                          "description",
                          "scope",
                          "author",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "observations"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/claims": {
      "post": {
        "operationId": "recordInterpretation",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "reading": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "epistemicStatus": {
                    "type": "string",
                    "enum": [
                      "directly-observed",
                      "model-suggested",
                      "source-documented",
                      "widely-established-craft-convention",
                      "one-interpretation",
                      "contested",
                      "speculative",
                      "insufficient-context"
                    ]
                  },
                  "supportingAnchorIds": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "counterevidenceAnchorIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "corpusBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "acknowledgeMixedProvenance": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "projectId",
                  "reading",
                  "context",
                  "epistemicStatus",
                  "supportingAnchorIds",
                  "counterevidenceAnchorIds",
                  "corpusBoundary",
                  "limitations"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claim": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "epistemicStatus": {
                          "type": "string",
                          "enum": [
                            "directly-observed",
                            "model-suggested",
                            "source-documented",
                            "widely-established-craft-convention",
                            "one-interpretation",
                            "contested",
                            "speculative",
                            "insufficient-context"
                          ]
                        },
                        "supportingAnchorIds": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "supportStrength": {
                          "type": "string",
                          "enum": [
                            "single-source",
                            "multiple-scenes",
                            "cross-work",
                            "corpus-wide"
                          ]
                        },
                        "reviewerAgreement": {
                          "type": "object",
                          "properties": {
                            "agree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "disagree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "abstain": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "agree",
                            "disagree",
                            "abstain"
                          ],
                          "additionalProperties": false
                        },
                        "culturalContextBounds": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "reviewDecisionIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "reading",
                        "context",
                        "author",
                        "epistemicStatus",
                        "supportingAnchorIds",
                        "counterevidenceAnchorIds",
                        "dissents",
                        "corpusBoundary",
                        "limitations",
                        "reviewState",
                        "reviewDecisionIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "claim"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/claims/{claimId}/revise": {
      "post": {
        "operationId": "reviseClaim",
        "parameters": [
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "be7fd779-9ff1-42aa-abbc-5d1e19c2e7f5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "reading": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "epistemicStatus": {
                    "type": "string",
                    "enum": [
                      "directly-observed",
                      "model-suggested",
                      "source-documented",
                      "widely-established-craft-convention",
                      "one-interpretation",
                      "contested",
                      "speculative",
                      "insufficient-context"
                    ]
                  },
                  "counterevidenceAnchorIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "culturalContextBounds": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "corpusBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claim": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "epistemicStatus": {
                          "type": "string",
                          "enum": [
                            "directly-observed",
                            "model-suggested",
                            "source-documented",
                            "widely-established-craft-convention",
                            "one-interpretation",
                            "contested",
                            "speculative",
                            "insufficient-context"
                          ]
                        },
                        "supportingAnchorIds": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "supportStrength": {
                          "type": "string",
                          "enum": [
                            "single-source",
                            "multiple-scenes",
                            "cross-work",
                            "corpus-wide"
                          ]
                        },
                        "reviewerAgreement": {
                          "type": "object",
                          "properties": {
                            "agree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "disagree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "abstain": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "agree",
                            "disagree",
                            "abstain"
                          ],
                          "additionalProperties": false
                        },
                        "culturalContextBounds": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "reviewDecisionIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "reading",
                        "context",
                        "author",
                        "epistemicStatus",
                        "supportingAnchorIds",
                        "counterevidenceAnchorIds",
                        "dissents",
                        "corpusBoundary",
                        "limitations",
                        "reviewState",
                        "reviewDecisionIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "claim"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/claims/{claimId}/dissents": {
      "post": {
        "operationId": "recordClaimDissent",
        "parameters": [
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "be7fd779-9ff1-42aa-abbc-5d1e19c2e7f5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reading": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "supportingAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "reading",
                  "supportingAnchorIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claim": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "epistemicStatus": {
                          "type": "string",
                          "enum": [
                            "directly-observed",
                            "model-suggested",
                            "source-documented",
                            "widely-established-craft-convention",
                            "one-interpretation",
                            "contested",
                            "speculative",
                            "insufficient-context"
                          ]
                        },
                        "supportingAnchorIds": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "supportStrength": {
                          "type": "string",
                          "enum": [
                            "single-source",
                            "multiple-scenes",
                            "cross-work",
                            "corpus-wide"
                          ]
                        },
                        "reviewerAgreement": {
                          "type": "object",
                          "properties": {
                            "agree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "disagree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "abstain": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "agree",
                            "disagree",
                            "abstain"
                          ],
                          "additionalProperties": false
                        },
                        "culturalContextBounds": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "reviewDecisionIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "reading",
                        "context",
                        "author",
                        "epistemicStatus",
                        "supportingAnchorIds",
                        "counterevidenceAnchorIds",
                        "dissents",
                        "corpusBoundary",
                        "limitations",
                        "reviewState",
                        "reviewDecisionIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "claim"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/claims/{claimId}": {
      "get": {
        "operationId": "getClaim",
        "parameters": [
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "be7fd779-9ff1-42aa-abbc-5d1e19c2e7f5"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claim": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "epistemicStatus": {
                          "type": "string",
                          "enum": [
                            "directly-observed",
                            "model-suggested",
                            "source-documented",
                            "widely-established-craft-convention",
                            "one-interpretation",
                            "contested",
                            "speculative",
                            "insufficient-context"
                          ]
                        },
                        "supportingAnchorIds": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "supportStrength": {
                          "type": "string",
                          "enum": [
                            "single-source",
                            "multiple-scenes",
                            "cross-work",
                            "corpus-wide"
                          ]
                        },
                        "reviewerAgreement": {
                          "type": "object",
                          "properties": {
                            "agree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "disagree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "abstain": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "agree",
                            "disagree",
                            "abstain"
                          ],
                          "additionalProperties": false
                        },
                        "culturalContextBounds": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "reviewDecisionIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "reading",
                        "context",
                        "author",
                        "epistemicStatus",
                        "supportingAnchorIds",
                        "counterevidenceAnchorIds",
                        "dissents",
                        "corpusBoundary",
                        "limitations",
                        "reviewState",
                        "reviewDecisionIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "claim"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/claims": {
      "get": {
        "operationId": "listClaims",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "anchor",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claims": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "reading": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 20000
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "epistemicStatus": {
                            "type": "string",
                            "enum": [
                              "directly-observed",
                              "model-suggested",
                              "source-documented",
                              "widely-established-craft-convention",
                              "one-interpretation",
                              "contested",
                              "speculative",
                              "insufficient-context"
                            ]
                          },
                          "supportingAnchorIds": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "counterevidenceAnchorIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "dissents": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "author": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reading": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "supportingAnchorIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "author",
                                "reading",
                                "supportingAnchorIds",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "corpusBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "supportStrength": {
                            "type": "string",
                            "enum": [
                              "single-source",
                              "multiple-scenes",
                              "cross-work",
                              "corpus-wide"
                            ]
                          },
                          "reviewerAgreement": {
                            "type": "object",
                            "properties": {
                              "agree": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "disagree": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "abstain": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "agree",
                              "disagree",
                              "abstain"
                            ],
                            "additionalProperties": false
                          },
                          "culturalContextBounds": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "reviewDecisionIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "reading",
                          "context",
                          "author",
                          "epistemicStatus",
                          "supportingAnchorIds",
                          "counterevidenceAnchorIds",
                          "dissents",
                          "corpusBoundary",
                          "limitations",
                          "reviewState",
                          "reviewDecisionIds"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "claims"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/craft-hypotheses": {
      "post": {
        "operationId": "recordCraftHypothesis",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "proposition": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "derivedFromClaimIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "derivedFromAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "causalStrength": {
                    "type": "string",
                    "enum": [
                      "correlation-only",
                      "plausible-mechanism",
                      "creator-corroborated",
                      "experimentally-tested"
                    ]
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "intendedPractice": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "contextualApplicability": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "projectId",
                  "proposition",
                  "derivedFromClaimIds",
                  "derivedFromAnchorIds",
                  "causalStrength",
                  "limitations",
                  "intendedPractice",
                  "contextualApplicability"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "hypothesis": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "proposition": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "derivedFromClaimIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "derivedFromAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "causalStrength": {
                          "type": "string",
                          "enum": [
                            "correlation-only",
                            "plausible-mechanism",
                            "creator-corroborated",
                            "experimentally-tested"
                          ]
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "counterexampleAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "intendedPractice": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "contextualApplicability": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "proposition",
                        "author",
                        "derivedFromClaimIds",
                        "derivedFromAnchorIds",
                        "causalStrength",
                        "limitations",
                        "counterexampleAnchorIds",
                        "intendedPractice",
                        "contextualApplicability",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "hypothesis"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creator-statements": {
      "post": {
        "operationId": "recordCreatorStatement",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "workId": {
                    "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)$"
                  },
                  "speakerName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "speakerRole": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "statement": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "quotation": {
                    "type": "boolean"
                  },
                  "paratextKind": {
                    "type": "string",
                    "enum": [
                      "interview",
                      "commentary-track",
                      "directors-statement",
                      "making-of",
                      "artbook",
                      "liner-notes",
                      "patch-notes",
                      "developer-blog",
                      "press-kit",
                      "lecture",
                      "conference-talk",
                      "memoir",
                      "social-post"
                    ]
                  },
                  "citation": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "publicationDate": {
                    "type": "string",
                    "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01]))?)?$"
                  },
                  "publisher": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "publicationVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "heldParatext": {
                    "type": "object",
                    "properties": {
                      "workId": {
                        "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)$"
                      },
                      "editionId": {
                        "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)$"
                      }
                    },
                    "required": [
                      "workId"
                    ],
                    "additionalProperties": false
                  },
                  "excerpt": {
                    "type": "object",
                    "properties": {
                      "unit": {
                        "type": "string",
                        "enum": [
                          "characters",
                          "seconds"
                        ]
                      },
                      "excerptExtent": {
                        "type": "number",
                        "exclusiveMinimum": 0
                      },
                      "sourceExtent": {
                        "type": "number",
                        "exclusiveMinimum": 0
                      }
                    },
                    "required": [
                      "unit",
                      "excerptExtent",
                      "sourceExtent"
                    ],
                    "additionalProperties": false
                  },
                  "subjects": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "work"
                            },
                            "workId": {
                              "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)$"
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "kind",
                            "workId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "scene"
                            },
                            "segmentId": {
                              "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)$"
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "kind",
                            "segmentId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "entity"
                            },
                            "entityId": {
                              "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)$"
                            },
                            "entityKind": {
                              "type": "string",
                              "enum": [
                                "character",
                                "performer",
                                "garment",
                                "prop",
                                "location",
                                "camera",
                                "mechanic",
                                "level",
                                "sound",
                                "motif",
                                "domain-owned"
                              ]
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "kind",
                            "entityId",
                            "entityKind"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "claim"
                            },
                            "claimId": {
                              "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)$"
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "kind",
                            "claimId"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "anchorIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "projectId",
                  "workId",
                  "speakerName",
                  "speakerRole",
                  "statement",
                  "quotation",
                  "paratextKind",
                  "citation",
                  "anchorIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "statement": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "epistemicIdentity": {
                          "type": "string",
                          "const": "creator-statement"
                        },
                        "workId": {
                          "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)$"
                        },
                        "speaker": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "role": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "name",
                            "role"
                          ],
                          "additionalProperties": false
                        },
                        "statement": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "quotation": {
                          "type": "boolean"
                        },
                        "source": {
                          "type": "object",
                          "properties": {
                            "paratextKind": {
                              "type": "string",
                              "enum": [
                                "interview",
                                "commentary-track",
                                "directors-statement",
                                "making-of",
                                "artbook",
                                "liner-notes",
                                "patch-notes",
                                "developer-blog",
                                "press-kit",
                                "lecture",
                                "conference-talk",
                                "memoir",
                                "social-post"
                              ]
                            },
                            "citation": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "publicationDate": {
                              "type": "string",
                              "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01]))?)?$"
                            },
                            "publisher": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "publicationVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "heldAs": {
                              "type": "object",
                              "properties": {
                                "workId": {
                                  "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)$"
                                },
                                "editionId": {
                                  "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)$"
                                },
                                "technicalRevisionHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                }
                              },
                              "required": [
                                "workId"
                              ],
                              "additionalProperties": false
                            },
                            "excerpt": {
                              "type": "object",
                              "properties": {
                                "unit": {
                                  "type": "string",
                                  "enum": [
                                    "characters",
                                    "seconds"
                                  ]
                                },
                                "excerptExtent": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                },
                                "sourceExtent": {
                                  "type": "number",
                                  "exclusiveMinimum": 0
                                }
                              },
                              "required": [
                                "unit",
                                "excerptExtent",
                                "sourceExtent"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "paratextKind",
                            "citation"
                          ],
                          "additionalProperties": false
                        },
                        "subjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "work"
                                  },
                                  "workId": {
                                    "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)$"
                                  },
                                  "note": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "workId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "scene"
                                  },
                                  "segmentId": {
                                    "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)$"
                                  },
                                  "note": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "segmentId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "entity"
                                  },
                                  "entityId": {
                                    "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)$"
                                  },
                                  "entityKind": {
                                    "type": "string",
                                    "enum": [
                                      "character",
                                      "performer",
                                      "garment",
                                      "prop",
                                      "location",
                                      "camera",
                                      "mechanic",
                                      "level",
                                      "sound",
                                      "motif",
                                      "domain-owned"
                                    ]
                                  },
                                  "note": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "entityId",
                                  "entityKind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "claim"
                                  },
                                  "claimId": {
                                    "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)$"
                                  },
                                  "note": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "claimId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "anchorIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "epistemicIdentity",
                        "workId",
                        "speaker",
                        "statement",
                        "quotation",
                        "source",
                        "anchorIds",
                        "reviewState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "statement"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/alignment-maps": {
      "post": {
        "operationId": "authorAlignmentMap",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "sourceEditionId": {
                    "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)$"
                  },
                  "targetEditionId": {
                    "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)$"
                  },
                  "correspondences": {
                    "minItems": 1,
                    "maxItems": 10000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "exact",
                            "approximate",
                            "reordered",
                            "added",
                            "removed",
                            "rescored",
                            "regraded",
                            "unmapped"
                          ]
                        },
                        "sourceRange": {
                          "type": "object",
                          "properties": {
                            "startFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "endFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "startFrame",
                            "endFrame"
                          ],
                          "additionalProperties": false
                        },
                        "targetRange": {
                          "type": "object",
                          "properties": {
                            "startFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "endFrame": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "startFrame",
                            "endFrame"
                          ],
                          "additionalProperties": false
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "sourceEditionId",
                  "targetEditionId",
                  "correspondences"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "map": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "sourceEditionId": {
                          "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)$"
                        },
                        "sourceTechnicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "targetEditionId": {
                          "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)$"
                        },
                        "targetTechnicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "manual",
                            "audio-fingerprint",
                            "shot-structure",
                            "transcript-alignment",
                            "telemetry-landmarks"
                          ]
                        },
                        "correspondences": {
                          "minItems": 1,
                          "maxItems": 50000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "exact",
                                  "approximate",
                                  "reordered",
                                  "added",
                                  "removed",
                                  "rescored",
                                  "regraded",
                                  "unmapped"
                                ]
                              },
                              "sourceRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "targetRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "method": {
                                "type": "string",
                                "enum": [
                                  "manual",
                                  "audio-fingerprint",
                                  "shot-structure",
                                  "transcript-alignment",
                                  "telemetry-landmarks"
                                ]
                              },
                              "processor": {
                                "type": "object",
                                "properties": {
                                  "codeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "codeVersion"
                                ],
                                "additionalProperties": false
                              },
                              "confidence": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "calibrated"
                                      },
                                      "value": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "calibration": {
                                        "type": "object",
                                        "properties": {
                                          "method": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "calibrationSetId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "calibrationSetVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "validatedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "method",
                                          "calibrationSetId",
                                          "calibrationSetVersion",
                                          "validatedAt"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "interval": {
                                        "type": "object",
                                        "properties": {
                                          "lower": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "upper": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "coverage": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "exclusiveMaximum": 1
                                          }
                                        },
                                        "required": [
                                          "lower",
                                          "upper",
                                          "coverage"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "applicabilityBoundary": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "value",
                                      "calibration",
                                      "interval",
                                      "applicabilityBoundary"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "uncalibrated"
                                      },
                                      "rawScore": {
                                        "type": "number"
                                      },
                                      "scale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "rawScore",
                                      "scale"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "missing"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "enum": [
                                          "not-applicable",
                                          "not-yet-calibrated",
                                          "legacy-import",
                                          "processor-omitted"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "kind",
                              "method",
                              "confidence",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "gaps": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "startFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "endFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "startFrame",
                              "endFrame"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "anchorMigrationProposals": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "anchorId": {
                                "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)$"
                              },
                              "proposedTargetRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "viaCorrespondenceIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "confidence": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "calibrated"
                                      },
                                      "value": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "calibration": {
                                        "type": "object",
                                        "properties": {
                                          "method": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "calibrationSetId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "calibrationSetVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "validatedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "method",
                                          "calibrationSetId",
                                          "calibrationSetVersion",
                                          "validatedAt"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "interval": {
                                        "type": "object",
                                        "properties": {
                                          "lower": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "upper": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "coverage": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "exclusiveMaximum": 1
                                          }
                                        },
                                        "required": [
                                          "lower",
                                          "upper",
                                          "coverage"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "applicabilityBoundary": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "value",
                                      "calibration",
                                      "interval",
                                      "applicabilityBoundary"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "uncalibrated"
                                      },
                                      "rawScore": {
                                        "type": "number"
                                      },
                                      "scale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "rawScore",
                                      "scale"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "missing"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "enum": [
                                          "not-applicable",
                                          "not-yet-calibrated",
                                          "legacy-import",
                                          "processor-omitted"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              }
                            },
                            "required": [
                              "anchorId",
                              "proposedTargetRange",
                              "viaCorrespondenceIndex",
                              "confidence",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "sourceEditionId",
                        "sourceTechnicalRevisionHash",
                        "targetEditionId",
                        "targetTechnicalRevisionHash",
                        "method",
                        "correspondences",
                        "gaps",
                        "reviewState",
                        "anchorMigrationProposals"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "map"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/alignment-maps/proposals": {
      "post": {
        "operationId": "proposeAlignmentMap",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "sourceEditionId": {
                    "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)$"
                  },
                  "targetEditionId": {
                    "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)$"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "audio-fingerprint",
                      "shot-structure",
                      "transcript-alignment",
                      "telemetry-landmarks"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "sourceEditionId",
                  "targetEditionId",
                  "method",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "map": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "sourceEditionId": {
                          "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)$"
                        },
                        "sourceTechnicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "targetEditionId": {
                          "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)$"
                        },
                        "targetTechnicalRevisionHash": {
                          "type": "string",
                          "pattern": "^sha256:[0-9a-f]{64}$"
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "manual",
                            "audio-fingerprint",
                            "shot-structure",
                            "transcript-alignment",
                            "telemetry-landmarks"
                          ]
                        },
                        "correspondences": {
                          "minItems": 1,
                          "maxItems": 50000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "exact",
                                  "approximate",
                                  "reordered",
                                  "added",
                                  "removed",
                                  "rescored",
                                  "regraded",
                                  "unmapped"
                                ]
                              },
                              "sourceRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "targetRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "method": {
                                "type": "string",
                                "enum": [
                                  "manual",
                                  "audio-fingerprint",
                                  "shot-structure",
                                  "transcript-alignment",
                                  "telemetry-landmarks"
                                ]
                              },
                              "processor": {
                                "type": "object",
                                "properties": {
                                  "codeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "codeVersion"
                                ],
                                "additionalProperties": false
                              },
                              "confidence": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "calibrated"
                                      },
                                      "value": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "calibration": {
                                        "type": "object",
                                        "properties": {
                                          "method": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "calibrationSetId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "calibrationSetVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "validatedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "method",
                                          "calibrationSetId",
                                          "calibrationSetVersion",
                                          "validatedAt"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "interval": {
                                        "type": "object",
                                        "properties": {
                                          "lower": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "upper": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "coverage": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "exclusiveMaximum": 1
                                          }
                                        },
                                        "required": [
                                          "lower",
                                          "upper",
                                          "coverage"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "applicabilityBoundary": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "value",
                                      "calibration",
                                      "interval",
                                      "applicabilityBoundary"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "uncalibrated"
                                      },
                                      "rawScore": {
                                        "type": "number"
                                      },
                                      "scale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "rawScore",
                                      "scale"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "missing"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "enum": [
                                          "not-applicable",
                                          "not-yet-calibrated",
                                          "legacy-import",
                                          "processor-omitted"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "kind",
                              "method",
                              "confidence",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "gaps": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "startFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "endFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "startFrame",
                              "endFrame"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "anchorMigrationProposals": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "anchorId": {
                                "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)$"
                              },
                              "proposedTargetRange": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "viaCorrespondenceIndex": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "confidence": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "calibrated"
                                      },
                                      "value": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "calibration": {
                                        "type": "object",
                                        "properties": {
                                          "method": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "calibrationSetId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "calibrationSetVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "validatedAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          }
                                        },
                                        "required": [
                                          "method",
                                          "calibrationSetId",
                                          "calibrationSetVersion",
                                          "validatedAt"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "interval": {
                                        "type": "object",
                                        "properties": {
                                          "lower": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "upper": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "coverage": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "exclusiveMaximum": 1
                                          }
                                        },
                                        "required": [
                                          "lower",
                                          "upper",
                                          "coverage"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "applicabilityBoundary": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "value",
                                      "calibration",
                                      "interval",
                                      "applicabilityBoundary"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "uncalibrated"
                                      },
                                      "rawScore": {
                                        "type": "number"
                                      },
                                      "scale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "rawScore",
                                      "scale"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "status": {
                                        "type": "string",
                                        "const": "missing"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "enum": [
                                          "not-applicable",
                                          "not-yet-calibrated",
                                          "legacy-import",
                                          "processor-omitted"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "status",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              }
                            },
                            "required": [
                              "anchorId",
                              "proposedTargetRange",
                              "viaCorrespondenceIndex",
                              "confidence",
                              "reviewState"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "sourceEditionId",
                        "sourceTechnicalRevisionHash",
                        "targetEditionId",
                        "targetTechnicalRevisionHash",
                        "method",
                        "correspondences",
                        "gaps",
                        "reviewState",
                        "anchorMigrationProposals"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "map"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/alignment-maps": {
      "get": {
        "operationId": "listAlignmentMaps",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "maps": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "sourceEditionId": {
                            "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)$"
                          },
                          "sourceTechnicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "targetEditionId": {
                            "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)$"
                          },
                          "targetTechnicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "method": {
                            "type": "string",
                            "enum": [
                              "manual",
                              "audio-fingerprint",
                              "shot-structure",
                              "transcript-alignment",
                              "telemetry-landmarks"
                            ]
                          },
                          "correspondences": {
                            "minItems": 1,
                            "maxItems": 50000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "exact",
                                    "approximate",
                                    "reordered",
                                    "added",
                                    "removed",
                                    "rescored",
                                    "regraded",
                                    "unmapped"
                                  ]
                                },
                                "sourceRange": {
                                  "type": "object",
                                  "properties": {
                                    "startFrame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endFrame": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startFrame",
                                    "endFrame"
                                  ],
                                  "additionalProperties": false
                                },
                                "targetRange": {
                                  "type": "object",
                                  "properties": {
                                    "startFrame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endFrame": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startFrame",
                                    "endFrame"
                                  ],
                                  "additionalProperties": false
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "manual",
                                    "audio-fingerprint",
                                    "shot-structure",
                                    "transcript-alignment",
                                    "telemetry-landmarks"
                                  ]
                                },
                                "processor": {
                                  "type": "object",
                                  "properties": {
                                    "codeVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "required": [
                                    "codeVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                "confidence": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "calibrated"
                                        },
                                        "value": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "calibration": {
                                          "type": "object",
                                          "properties": {
                                            "method": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 120
                                            },
                                            "calibrationSetId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "calibrationSetVersion": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "validatedAt": {
                                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                            }
                                          },
                                          "required": [
                                            "method",
                                            "calibrationSetId",
                                            "calibrationSetVersion",
                                            "validatedAt"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "interval": {
                                          "type": "object",
                                          "properties": {
                                            "lower": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "upper": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "coverage": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "exclusiveMaximum": 1
                                            }
                                          },
                                          "required": [
                                            "lower",
                                            "upper",
                                            "coverage"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "applicabilityBoundary": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "value",
                                        "calibration",
                                        "interval",
                                        "applicabilityBoundary"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "uncalibrated"
                                        },
                                        "rawScore": {
                                          "type": "number"
                                        },
                                        "scale": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "rawScore",
                                        "scale"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "missing"
                                        },
                                        "reason": {
                                          "type": "string",
                                          "enum": [
                                            "not-applicable",
                                            "not-yet-calibrated",
                                            "legacy-import",
                                            "processor-omitted"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "reason"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reviewState": {
                                  "type": "string",
                                  "enum": [
                                    "suggested",
                                    "accepted",
                                    "corrected",
                                    "contested",
                                    "rejected",
                                    "superseded"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "kind",
                                "method",
                                "confidence",
                                "reviewState"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "gaps": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "anchorMigrationProposals": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "anchorId": {
                                  "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)$"
                                },
                                "proposedTargetRange": {
                                  "type": "object",
                                  "properties": {
                                    "startFrame": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endFrame": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startFrame",
                                    "endFrame"
                                  ],
                                  "additionalProperties": false
                                },
                                "viaCorrespondenceIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "confidence": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "calibrated"
                                        },
                                        "value": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "calibration": {
                                          "type": "object",
                                          "properties": {
                                            "method": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 120
                                            },
                                            "calibrationSetId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "calibrationSetVersion": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "validatedAt": {
                                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                            }
                                          },
                                          "required": [
                                            "method",
                                            "calibrationSetId",
                                            "calibrationSetVersion",
                                            "validatedAt"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "interval": {
                                          "type": "object",
                                          "properties": {
                                            "lower": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "upper": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "coverage": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "exclusiveMaximum": 1
                                            }
                                          },
                                          "required": [
                                            "lower",
                                            "upper",
                                            "coverage"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "applicabilityBoundary": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "value",
                                        "calibration",
                                        "interval",
                                        "applicabilityBoundary"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "uncalibrated"
                                        },
                                        "rawScore": {
                                          "type": "number"
                                        },
                                        "scale": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "rawScore",
                                        "scale"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "status": {
                                          "type": "string",
                                          "const": "missing"
                                        },
                                        "reason": {
                                          "type": "string",
                                          "enum": [
                                            "not-applicable",
                                            "not-yet-calibrated",
                                            "legacy-import",
                                            "processor-omitted"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "status",
                                        "reason"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reviewState": {
                                  "type": "string",
                                  "enum": [
                                    "suggested",
                                    "accepted",
                                    "corrected",
                                    "contested",
                                    "rejected",
                                    "superseded"
                                  ]
                                }
                              },
                              "required": [
                                "anchorId",
                                "proposedTargetRange",
                                "viaCorrespondenceIndex",
                                "confidence",
                                "reviewState"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "sourceEditionId",
                          "sourceTechnicalRevisionHash",
                          "targetEditionId",
                          "targetTechnicalRevisionHash",
                          "method",
                          "correspondences",
                          "gaps",
                          "reviewState",
                          "anchorMigrationProposals"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "maps"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/revalidation-tasks": {
      "get": {
        "operationId": "listRevalidationTasks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "tasks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "workId": {
                            "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)$"
                          },
                          "triggeringEditionId": {
                            "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)$"
                          },
                          "subjectFamily": {
                            "type": "string",
                            "enum": [
                              "edition_alignment_map",
                              "interpretation_claim",
                              "observation",
                              "craft_hypothesis",
                              "cross_reference",
                              "study_notebook"
                            ]
                          },
                          "subjectRecordId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9_-]{8,160}$"
                          },
                          "triggerKind": {
                            "default": "build-changed",
                            "type": "string",
                            "enum": [
                              "build-changed",
                              "evidence-expired",
                              "evidence-deleted",
                              "evidence-contested"
                            ]
                          },
                          "evidencePath": {
                            "default": [],
                            "maxItems": 32,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "family": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                "id": {
                                  "type": "string",
                                  "pattern": "^[A-Za-z0-9_-]{8,160}$"
                                }
                              },
                              "required": [
                                "family",
                                "id"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "open",
                              "resolved"
                            ]
                          },
                          "resolution": {
                            "type": "object",
                            "properties": {
                              "resolvedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "resolvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "resolvedByUserId",
                              "note",
                              "resolvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "workId",
                          "triggeringEditionId",
                          "subjectFamily",
                          "subjectRecordId",
                          "triggerKind",
                          "evidencePath",
                          "reason",
                          "state"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "tasks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/revalidation-tasks/{taskId}/resolution": {
      "post": {
        "operationId": "resolveRevalidationTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "003bd4c2-aaf1-48a6-a2b8-1d2768726159"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "task": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "triggeringEditionId": {
                          "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)$"
                        },
                        "subjectFamily": {
                          "type": "string",
                          "enum": [
                            "edition_alignment_map",
                            "interpretation_claim",
                            "observation",
                            "craft_hypothesis",
                            "cross_reference",
                            "study_notebook"
                          ]
                        },
                        "subjectRecordId": {
                          "type": "string",
                          "pattern": "^[A-Za-z0-9_-]{8,160}$"
                        },
                        "triggerKind": {
                          "default": "build-changed",
                          "type": "string",
                          "enum": [
                            "build-changed",
                            "evidence-expired",
                            "evidence-deleted",
                            "evidence-contested"
                          ]
                        },
                        "evidencePath": {
                          "default": [],
                          "maxItems": 32,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "family": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "id": {
                                "type": "string",
                                "pattern": "^[A-Za-z0-9_-]{8,160}$"
                              }
                            },
                            "required": [
                              "family",
                              "id"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "open",
                            "resolved"
                          ]
                        },
                        "resolution": {
                          "type": "object",
                          "properties": {
                            "resolvedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "resolvedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "resolvedByUserId",
                            "note",
                            "resolvedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "workId",
                        "triggeringEditionId",
                        "subjectFamily",
                        "subjectRecordId",
                        "triggerKind",
                        "evidencePath",
                        "reason",
                        "state"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "task"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/reviews": {
      "post": {
        "operationId": "reviewRecord",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "family": {
                    "type": "string",
                    "enum": [
                      "observation",
                      "claim",
                      "alignment-map",
                      "cross-reference",
                      "detection"
                    ]
                  },
                  "recordId": {
                    "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)$"
                  },
                  "subjectRevision": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "fromState": {
                    "type": "string",
                    "enum": [
                      "suggested",
                      "accepted",
                      "corrected",
                      "contested",
                      "rejected",
                      "superseded"
                    ]
                  },
                  "toState": {
                    "type": "string",
                    "enum": [
                      "suggested",
                      "accepted",
                      "corrected",
                      "contested",
                      "rejected",
                      "superseded"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "corrections": {
                    "type": "string",
                    "maxLength": 10000
                  }
                },
                "required": [
                  "family",
                  "recordId",
                  "subjectRevision",
                  "fromState",
                  "toState",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "family": {
                      "type": "string",
                      "enum": [
                        "observation",
                        "claim",
                        "alignment-map",
                        "cross-reference",
                        "detection"
                      ]
                    },
                    "recordId": {
                      "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)$"
                    },
                    "reviewState": {
                      "type": "string",
                      "enum": [
                        "suggested",
                        "accepted",
                        "corrected",
                        "contested",
                        "rejected",
                        "superseded"
                      ]
                    },
                    "revision": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "family",
                    "recordId",
                    "reviewState",
                    "revision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/trail": {
      "get": {
        "operationId": "projectTrail",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    },
                    "works": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "medium": {
                            "type": "string",
                            "enum": [
                              "film",
                              "television",
                              "animation",
                              "game",
                              "audio",
                              "still-image",
                              "document",
                              "mixed-media"
                            ]
                          },
                          "year": {
                            "type": "integer",
                            "minimum": 1870,
                            "maximum": 2100
                          },
                          "creators": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "identityCandidates": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "authority": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "externalId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "certainty": {
                                  "type": "string",
                                  "enum": [
                                    "confirmed",
                                    "probable",
                                    "possible"
                                  ]
                                },
                                "reviewState": {
                                  "type": "string",
                                  "enum": [
                                    "suggested",
                                    "accepted",
                                    "corrected",
                                    "contested",
                                    "rejected",
                                    "superseded"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "authority",
                                "externalId",
                                "certainty",
                                "reviewState"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "mergeHistory": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "absorbedWorkId": {
                                  "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)$"
                                },
                                "mergedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "reviewState": {
                                  "type": "string",
                                  "enum": [
                                    "suggested",
                                    "accepted",
                                    "corrected",
                                    "contested",
                                    "rejected",
                                    "superseded"
                                  ]
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "absorbedWorkId",
                                "mergedBy",
                                "reason",
                                "reviewState",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "editionIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "restriction": {
                            "type": "object",
                            "properties": {
                              "classification": {
                                "type": "string",
                                "enum": [
                                  "restricted",
                                  "prohibited"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "decidedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "decidedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "classification",
                              "reason",
                              "decidedBy",
                              "decidedAt"
                            ],
                            "additionalProperties": false
                          },
                          "sensitivity": {
                            "type": "object",
                            "properties": {
                              "privacyClass": {
                                "type": "string",
                                "enum": [
                                  "rehearsal",
                                  "audition",
                                  "classroom",
                                  "mocap",
                                  "voice-session",
                                  "gameplay-session",
                                  "learner-attempt",
                                  "review-session"
                                ]
                              },
                              "containsParticipants": {
                                "default": true,
                                "type": "boolean"
                              },
                              "recordedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "privacyClass",
                              "containsParticipants",
                              "recordedBy",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "title",
                          "medium",
                          "creators",
                          "identityCandidates",
                          "mergeHistory",
                          "editionIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "editions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "workId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "theatrical-cut",
                              "directors-cut",
                              "extended-cut",
                              "broadcast-version",
                              "restoration",
                              "game-build",
                              "patch",
                              "remaster",
                              "other"
                            ]
                          },
                          "sourceMode": {
                            "type": "string",
                            "enum": [
                              "file",
                              "licensed-stream",
                              "provider-link-only",
                              "internal-production-asset",
                              "unknown"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "platform": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "buildNumber": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "patchVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "region": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "primaryLanguage": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "aspectRatio": {
                            "type": "object",
                            "properties": {
                              "horizontal": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "vertical": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "horizontal",
                              "vertical"
                            ],
                            "additionalProperties": false
                          },
                          "colorSpace": {
                            "type": "string",
                            "enum": [
                              "bt709",
                              "bt2020",
                              "srgb",
                              "p3",
                              "rec601",
                              "unknown"
                            ]
                          },
                          "dynamicRange": {
                            "type": "string",
                            "enum": [
                              "sdr",
                              "hdr10",
                              "dolby-vision",
                              "hlg",
                              "unknown"
                            ]
                          },
                          "audioTracks": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "language": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 35
                                },
                                "layout": {
                                  "type": "string",
                                  "enum": [
                                    "mono",
                                    "stereo",
                                    "5.1",
                                    "7.1",
                                    "atmos",
                                    "other"
                                  ]
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "original",
                                    "dub",
                                    "commentary",
                                    "descriptive-audio"
                                  ]
                                }
                              },
                              "required": [
                                "language",
                                "layout",
                                "kind"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "subtitleTracks": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "language": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 35
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "subtitles",
                                    "closed-captions",
                                    "sdh",
                                    "forced-narrative"
                                  ]
                                }
                              },
                              "required": [
                                "language",
                                "kind"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "technicalRevision": {
                            "type": "object",
                            "properties": {
                              "contentHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "byteSize": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "contentHash",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          },
                          "durationFrames": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "gameCapture": {
                            "type": "object",
                            "properties": {
                              "mods": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "captureConfiguration": {
                                "type": "object",
                                "properties": {
                                  "resolution": {
                                    "type": "string",
                                    "pattern": "^\\d{3,5}x\\d{3,5}$"
                                  },
                                  "captureFrameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "inputOverlay": {
                                    "type": "boolean"
                                  },
                                  "audioCaptured": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "resolution",
                                  "captureFrameRate",
                                  "inputOverlay",
                                  "audioCaptured"
                                ],
                                "additionalProperties": false
                              },
                              "settings": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "device": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "network": {
                                "type": "object",
                                "properties": {
                                  "mode": {
                                    "type": "string",
                                    "enum": [
                                      "offline",
                                      "lan",
                                      "online-peer-to-peer",
                                      "online-server"
                                    ]
                                  },
                                  "region": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                },
                                "required": [
                                  "mode"
                                ],
                                "additionalProperties": false
                              },
                              "accessibility": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "mods",
                              "captureConfiguration",
                              "settings",
                              "device",
                              "accessibility"
                            ],
                            "additionalProperties": false
                          },
                          "instrumentedSession": {
                            "type": "object",
                            "properties": {
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "connectorId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "buildContentManifest": {
                                "type": "object",
                                "properties": {
                                  "contentManifestHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "platform": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "buildNumber": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "patchVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "contentManifestHash",
                                  "platform",
                                  "buildNumber",
                                  "patchVersion"
                                ],
                                "additionalProperties": false
                              },
                              "clockMapping": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "deterministic-replay"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "video-clock-mapping"
                                      },
                                      "uncertaintyMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "uncertaintyMs"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "replayReferences": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "domain": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "nativeId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 512
                                    },
                                    "nativeVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "domain",
                                    "kind",
                                    "nativeId"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "telemetrySchemas": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "stream": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "schemaRef": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    },
                                    "version": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 60
                                    }
                                  },
                                  "required": [
                                    "stream",
                                    "schemaRef",
                                    "version"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "privacyPolicy": {
                                "type": "object",
                                "properties": {
                                  "capturedCategories": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "scrubbedCategories": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  }
                                },
                                "required": [
                                  "capturedCategories",
                                  "scrubbedCategories"
                                ],
                                "additionalProperties": false
                              },
                              "sourceAuthorityGrantId": {
                                "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)$"
                              },
                              "signature": {
                                "type": "object",
                                "properties": {
                                  "algorithm": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  },
                                  "keyId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "signatureB64": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "signedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "canonicalization": {
                                    "type": "string",
                                    "const": "sorted-json-v1"
                                  }
                                },
                                "required": [
                                  "algorithm",
                                  "keyId",
                                  "signatureB64",
                                  "signedAt",
                                  "canonicalization"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "sessionId",
                              "buildContentManifest",
                              "clockMapping",
                              "replayReferences",
                              "telemetrySchemas",
                              "privacyPolicy",
                              "sourceAuthorityGrantId"
                            ],
                            "additionalProperties": false
                          },
                          "projectArtifactLinks": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "asset",
                                    "level",
                                    "animation-graph",
                                    "behavior-tree",
                                    "data-table",
                                    "source-project",
                                    "version"
                                  ]
                                },
                                "nativeId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "engine": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "readAtRevision": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "ownership": {
                                  "type": "string",
                                  "enum": [
                                    "creator-owned",
                                    "explicitly-authorized",
                                    "studied-only",
                                    "extracted-commercial"
                                  ]
                                },
                                "authorizationEvidenceRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "linkedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "linkedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "nativeId",
                                "engine",
                                "readAtRevision",
                                "ownership",
                                "linkedAt",
                                "linkedByUserId"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "workId",
                          "kind",
                          "label",
                          "primaryLanguage",
                          "audioTracks",
                          "subtitleTracks",
                          "technicalRevision"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "segments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "editionId": {
                            "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)$"
                          },
                          "technicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "reel",
                              "act",
                              "chapter",
                              "sequence",
                              "scene",
                              "shot",
                              "take",
                              "beat",
                              "line",
                              "session",
                              "level",
                              "checkpoint",
                              "encounter",
                              "round",
                              "phase",
                              "action",
                              "state-transition",
                              "custom"
                            ]
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "parentSegmentId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "orderKey": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "locator": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-range"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "frame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "region": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y",
                                      "width",
                                      "height"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "shape": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "rectangle"
                                          }
                                        },
                                        "required": [
                                          "shapeKind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "polygon"
                                          },
                                          "points": {
                                            "minItems": 3,
                                            "maxItems": 1000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "points"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "point"
                                          },
                                          "point": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "point"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "skeleton"
                                          },
                                          "convention": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "joints": {
                                            "minItems": 1,
                                            "maxItems": 200,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "name": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "observed": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "point",
                                                "observed"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "bones": {
                                            "maxItems": 400,
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "prefixItems": [
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "convention",
                                          "joints",
                                          "bones"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "mask"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "coverageOfBox": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "objectKey",
                                          "contentHash",
                                          "coverageOfBox"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "frame",
                                  "region"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "tracked-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "keyframes": {
                                    "minItems": 2,
                                    "maxItems": 10000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "frame": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "region": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "width": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            },
                                            "height": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y",
                                            "width",
                                            "height"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "shape": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "rectangle"
                                                }
                                              },
                                              "required": [
                                                "shapeKind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "polygon"
                                                },
                                                "points": {
                                                  "minItems": 3,
                                                  "maxItems": 1000,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "points"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "point"
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "point"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "skeleton"
                                                },
                                                "convention": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "joints": {
                                                  "minItems": 1,
                                                  "maxItems": 200,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string",
                                                        "minLength": 1,
                                                        "maxLength": 80
                                                      },
                                                      "point": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      "observed": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "point",
                                                      "observed"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "bones": {
                                                  "maxItems": 400,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      },
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "convention",
                                                "joints",
                                                "bones"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "mask"
                                                },
                                                "objectKey": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1024
                                                },
                                                "contentHash": {
                                                  "type": "string",
                                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                                },
                                                "coverageOfBox": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "objectKey",
                                                "contentHash",
                                                "coverageOfBox"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "frame",
                                        "region"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "interpolation": {
                                    "type": "string",
                                    "enum": [
                                      "none",
                                      "hold",
                                      "linear"
                                    ]
                                  },
                                  "subject": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "keyframes",
                                  "interpolation",
                                  "subject"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "waveform-interval"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "sampleRateHz": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1536000
                                  },
                                  "startSample": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endSample": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "channelIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "sampleRateHz",
                                  "startSample",
                                  "endSample"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "transcript-span"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "tokenStart": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "tokenEnd": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "exactText": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "tokenStart",
                                  "tokenEnd",
                                  "exactText"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "document"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "coordinate": {
                                    "type": "object",
                                    "properties": {
                                      "page": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "block": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "line": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "word": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charStart": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charEnd": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId",
                                  "coordinate"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "runtime-event-range"
                                  },
                                  "start": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "end": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "start"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "spatial"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "nodePath": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "position": {
                                    "type": "object",
                                    "properties": {
                                      "space": {
                                        "type": "string",
                                        "enum": [
                                          "world",
                                          "local"
                                        ]
                                      },
                                      "x": {
                                        "type": "number"
                                      },
                                      "y": {
                                        "type": "number"
                                      },
                                      "z": {
                                        "type": "number"
                                      },
                                      "units": {
                                        "default": "meters",
                                        "type": "string",
                                        "const": "meters"
                                      }
                                    },
                                    "required": [
                                      "space",
                                      "x",
                                      "y",
                                      "z",
                                      "units"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "segmentationVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "corrections": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "correctedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "field": {
                                  "type": "string",
                                  "enum": [
                                    "locator",
                                    "kind",
                                    "label",
                                    "parent",
                                    "lifecycle"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "from": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "to": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                }
                              },
                              "required": [
                                "correctedBy",
                                "field",
                                "reason",
                                "occurredAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "splitFromSegmentId": {
                            "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)$"
                          },
                          "mergedIntoSegmentId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "editionId",
                          "technicalRevisionHash",
                          "kind",
                          "label",
                          "parentSegmentId",
                          "orderKey",
                          "locator",
                          "segmentationVersion",
                          "author",
                          "confidence",
                          "reviewState",
                          "corrections"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "anchors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "workId": {
                            "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)$"
                          },
                          "assetId": {
                            "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)$"
                          },
                          "sessionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "editionId": {
                            "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)$"
                          },
                          "technicalRevisionHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "locator": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-range"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "frame-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "frame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "region": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "width": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      },
                                      "height": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y",
                                      "width",
                                      "height"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "shape": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "rectangle"
                                          }
                                        },
                                        "required": [
                                          "shapeKind"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "polygon"
                                          },
                                          "points": {
                                            "minItems": 3,
                                            "maxItems": 1000,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y"
                                              ],
                                              "additionalProperties": false
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "points"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "point"
                                          },
                                          "point": {
                                            "type": "object",
                                            "properties": {
                                              "x": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "y": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              }
                                            },
                                            "required": [
                                              "x",
                                              "y"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "point"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "skeleton"
                                          },
                                          "convention": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "joints": {
                                            "minItems": 1,
                                            "maxItems": 200,
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "properties": {
                                                "name": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 80
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "observed": {
                                                  "type": "boolean"
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "point",
                                                "observed"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "bones": {
                                            "maxItems": 400,
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "prefixItems": [
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "convention",
                                          "joints",
                                          "bones"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "shapeKind": {
                                            "type": "string",
                                            "const": "mask"
                                          },
                                          "objectKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024
                                          },
                                          "contentHash": {
                                            "type": "string",
                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                          },
                                          "coverageOfBox": {
                                            "type": "number",
                                            "exclusiveMinimum": 0,
                                            "maximum": 1
                                          }
                                        },
                                        "required": [
                                          "shapeKind",
                                          "objectKey",
                                          "contentHash",
                                          "coverageOfBox"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "frame",
                                  "region"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "tracked-region"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "frameRate": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 240000
                                      },
                                      "denominator": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 1001
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "keyframes": {
                                    "minItems": 2,
                                    "maxItems": 10000,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "frame": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "region": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "width": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            },
                                            "height": {
                                              "type": "number",
                                              "exclusiveMinimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y",
                                            "width",
                                            "height"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "shape": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "rectangle"
                                                }
                                              },
                                              "required": [
                                                "shapeKind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "polygon"
                                                },
                                                "points": {
                                                  "minItems": 3,
                                                  "maxItems": 1000,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "points"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "point"
                                                },
                                                "point": {
                                                  "type": "object",
                                                  "properties": {
                                                    "x": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "y": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "x",
                                                    "y"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "point"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "skeleton"
                                                },
                                                "convention": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 120
                                                },
                                                "joints": {
                                                  "minItems": 1,
                                                  "maxItems": 200,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "properties": {
                                                      "name": {
                                                        "type": "string",
                                                        "minLength": 1,
                                                        "maxLength": 80
                                                      },
                                                      "point": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      "observed": {
                                                        "type": "boolean"
                                                      }
                                                    },
                                                    "required": [
                                                      "name",
                                                      "point",
                                                      "observed"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                },
                                                "bones": {
                                                  "maxItems": 400,
                                                  "type": "array",
                                                  "items": {
                                                    "type": "array",
                                                    "prefixItems": [
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      },
                                                      {
                                                        "type": "integer",
                                                        "minimum": 0,
                                                        "maximum": 9007199254740991
                                                      }
                                                    ]
                                                  }
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "convention",
                                                "joints",
                                                "bones"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "shapeKind": {
                                                  "type": "string",
                                                  "const": "mask"
                                                },
                                                "objectKey": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1024
                                                },
                                                "contentHash": {
                                                  "type": "string",
                                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                                },
                                                "coverageOfBox": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "shapeKind",
                                                "objectKey",
                                                "contentHash",
                                                "coverageOfBox"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "frame",
                                        "region"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "interpolation": {
                                    "type": "string",
                                    "enum": [
                                      "none",
                                      "hold",
                                      "linear"
                                    ]
                                  },
                                  "subject": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "frameRate",
                                  "keyframes",
                                  "interpolation",
                                  "subject"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "waveform-interval"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "sampleRateHz": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1536000
                                  },
                                  "startSample": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endSample": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "channelIndex": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "sampleRateHz",
                                  "startSample",
                                  "endSample"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "transcript-span"
                                  },
                                  "trackId": {
                                    "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)$"
                                  },
                                  "tokenStart": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "tokenEnd": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "exactText": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "trackId",
                                  "tokenStart",
                                  "tokenEnd",
                                  "exactText"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "document"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "coordinate": {
                                    "type": "object",
                                    "properties": {
                                      "page": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "block": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "line": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "word": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charStart": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "charEnd": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId",
                                  "coordinate"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "runtime-event-range"
                                  },
                                  "start": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "end": {
                                    "type": "object",
                                    "properties": {
                                      "sessionId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "eventIndex": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "monotonic": {
                                        "type": "object",
                                        "properties": {
                                          "clockDomain": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "nanoseconds": {
                                            "type": "string",
                                            "pattern": "^\\d{1,19}$"
                                          }
                                        },
                                        "required": [
                                          "clockDomain",
                                          "nanoseconds"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "wallClock": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "sessionId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "start"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "spatial"
                                  },
                                  "assetId": {
                                    "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)$"
                                  },
                                  "nodePath": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "position": {
                                    "type": "object",
                                    "properties": {
                                      "space": {
                                        "type": "string",
                                        "enum": [
                                          "world",
                                          "local"
                                        ]
                                      },
                                      "x": {
                                        "type": "number"
                                      },
                                      "y": {
                                        "type": "number"
                                      },
                                      "z": {
                                        "type": "number"
                                      },
                                      "units": {
                                        "default": "meters",
                                        "type": "string",
                                        "const": "meters"
                                      }
                                    },
                                    "required": [
                                      "space",
                                      "x",
                                      "y",
                                      "z",
                                      "units"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "assetId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "locatorKind": {
                                    "type": "string",
                                    "const": "compound"
                                  },
                                  "components": {
                                    "minItems": 2,
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "frame-range"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "startFrame": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "endFrame": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "startFrame",
                                            "endFrame"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "frame-region"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "frame": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "region": {
                                              "type": "object",
                                              "properties": {
                                                "x": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "y": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "width": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                },
                                                "height": {
                                                  "type": "number",
                                                  "exclusiveMinimum": 0,
                                                  "maximum": 1
                                                }
                                              },
                                              "required": [
                                                "x",
                                                "y",
                                                "width",
                                                "height"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "shape": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "rectangle"
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "polygon"
                                                    },
                                                    "points": {
                                                      "minItems": 3,
                                                      "maxItems": 1000,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "x": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          },
                                                          "y": {
                                                            "type": "number",
                                                            "minimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "x",
                                                          "y"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "points"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "point"
                                                    },
                                                    "point": {
                                                      "type": "object",
                                                      "properties": {
                                                        "x": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        },
                                                        "y": {
                                                          "type": "number",
                                                          "minimum": 0,
                                                          "maximum": 1
                                                        }
                                                      },
                                                      "required": [
                                                        "x",
                                                        "y"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "point"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "skeleton"
                                                    },
                                                    "convention": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 120
                                                    },
                                                    "joints": {
                                                      "minItems": 1,
                                                      "maxItems": 200,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "properties": {
                                                          "name": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 80
                                                          },
                                                          "point": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          },
                                                          "observed": {
                                                            "type": "boolean"
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "point",
                                                          "observed"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    },
                                                    "bones": {
                                                      "maxItems": 400,
                                                      "type": "array",
                                                      "items": {
                                                        "type": "array",
                                                        "prefixItems": [
                                                          {
                                                            "type": "integer",
                                                            "minimum": 0,
                                                            "maximum": 9007199254740991
                                                          },
                                                          {
                                                            "type": "integer",
                                                            "minimum": 0,
                                                            "maximum": 9007199254740991
                                                          }
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "convention",
                                                    "joints",
                                                    "bones"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "shapeKind": {
                                                      "type": "string",
                                                      "const": "mask"
                                                    },
                                                    "objectKey": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 1024
                                                    },
                                                    "contentHash": {
                                                      "type": "string",
                                                      "pattern": "^sha256:[0-9a-f]{64}$"
                                                    },
                                                    "coverageOfBox": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "maximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "shapeKind",
                                                    "objectKey",
                                                    "contentHash",
                                                    "coverageOfBox"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "frame",
                                            "region"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "tracked-region"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "frameRate": {
                                              "type": "object",
                                              "properties": {
                                                "numerator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 240000
                                                },
                                                "denominator": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 1001
                                                }
                                              },
                                              "required": [
                                                "numerator",
                                                "denominator"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "keyframes": {
                                              "minItems": 2,
                                              "maxItems": 10000,
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "properties": {
                                                  "frame": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  },
                                                  "region": {
                                                    "type": "object",
                                                    "properties": {
                                                      "x": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "y": {
                                                        "type": "number",
                                                        "minimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "width": {
                                                        "type": "number",
                                                        "exclusiveMinimum": 0,
                                                        "maximum": 1
                                                      },
                                                      "height": {
                                                        "type": "number",
                                                        "exclusiveMinimum": 0,
                                                        "maximum": 1
                                                      }
                                                    },
                                                    "required": [
                                                      "x",
                                                      "y",
                                                      "width",
                                                      "height"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  "shape": {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "rectangle"
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "polygon"
                                                          },
                                                          "points": {
                                                            "minItems": 3,
                                                            "maxItems": 1000,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "properties": {
                                                                "x": {
                                                                  "type": "number",
                                                                  "minimum": 0,
                                                                  "maximum": 1
                                                                },
                                                                "y": {
                                                                  "type": "number",
                                                                  "minimum": 0,
                                                                  "maximum": 1
                                                                }
                                                              },
                                                              "required": [
                                                                "x",
                                                                "y"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "points"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "point"
                                                          },
                                                          "point": {
                                                            "type": "object",
                                                            "properties": {
                                                              "x": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              },
                                                              "y": {
                                                                "type": "number",
                                                                "minimum": 0,
                                                                "maximum": 1
                                                              }
                                                            },
                                                            "required": [
                                                              "x",
                                                              "y"
                                                            ],
                                                            "additionalProperties": false
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "point"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "skeleton"
                                                          },
                                                          "convention": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 120
                                                          },
                                                          "joints": {
                                                            "minItems": 1,
                                                            "maxItems": 200,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "properties": {
                                                                "name": {
                                                                  "type": "string",
                                                                  "minLength": 1,
                                                                  "maxLength": 80
                                                                },
                                                                "point": {
                                                                  "type": "object",
                                                                  "properties": {
                                                                    "x": {
                                                                      "type": "number",
                                                                      "minimum": 0,
                                                                      "maximum": 1
                                                                    },
                                                                    "y": {
                                                                      "type": "number",
                                                                      "minimum": 0,
                                                                      "maximum": 1
                                                                    }
                                                                  },
                                                                  "required": [
                                                                    "x",
                                                                    "y"
                                                                  ],
                                                                  "additionalProperties": false
                                                                },
                                                                "observed": {
                                                                  "type": "boolean"
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "point",
                                                                "observed"
                                                              ],
                                                              "additionalProperties": false
                                                            }
                                                          },
                                                          "bones": {
                                                            "maxItems": 400,
                                                            "type": "array",
                                                            "items": {
                                                              "type": "array",
                                                              "prefixItems": [
                                                                {
                                                                  "type": "integer",
                                                                  "minimum": 0,
                                                                  "maximum": 9007199254740991
                                                                },
                                                                {
                                                                  "type": "integer",
                                                                  "minimum": 0,
                                                                  "maximum": 9007199254740991
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "convention",
                                                          "joints",
                                                          "bones"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "shapeKind": {
                                                            "type": "string",
                                                            "const": "mask"
                                                          },
                                                          "objectKey": {
                                                            "type": "string",
                                                            "minLength": 1,
                                                            "maxLength": 1024
                                                          },
                                                          "contentHash": {
                                                            "type": "string",
                                                            "pattern": "^sha256:[0-9a-f]{64}$"
                                                          },
                                                          "coverageOfBox": {
                                                            "type": "number",
                                                            "exclusiveMinimum": 0,
                                                            "maximum": 1
                                                          }
                                                        },
                                                        "required": [
                                                          "shapeKind",
                                                          "objectKey",
                                                          "contentHash",
                                                          "coverageOfBox"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "frame",
                                                  "region"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "interpolation": {
                                              "type": "string",
                                              "enum": [
                                                "none",
                                                "hold",
                                                "linear"
                                              ]
                                            },
                                            "subject": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "frameRate",
                                            "keyframes",
                                            "interpolation",
                                            "subject"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "waveform-interval"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "sampleRateHz": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 1536000
                                            },
                                            "startSample": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "endSample": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "channelIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 255
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "sampleRateHz",
                                            "startSample",
                                            "endSample"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "transcript-span"
                                            },
                                            "trackId": {
                                              "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)$"
                                            },
                                            "tokenStart": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 9007199254740991
                                            },
                                            "tokenEnd": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "exactText": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 5000
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "trackId",
                                            "tokenStart",
                                            "tokenEnd",
                                            "exactText"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "document"
                                            },
                                            "assetId": {
                                              "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)$"
                                            },
                                            "coordinate": {
                                              "type": "object",
                                              "properties": {
                                                "page": {
                                                  "type": "integer",
                                                  "minimum": 1,
                                                  "maximum": 9007199254740991
                                                },
                                                "block": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "line": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "word": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "charStart": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "charEnd": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                }
                                              },
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "assetId",
                                            "coordinate"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "runtime-event-range"
                                            },
                                            "start": {
                                              "type": "object",
                                              "properties": {
                                                "sessionId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                },
                                                "eventIndex": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "monotonic": {
                                                  "type": "object",
                                                  "properties": {
                                                    "clockDomain": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 160
                                                    },
                                                    "nanoseconds": {
                                                      "type": "string",
                                                      "pattern": "^\\d{1,19}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "clockDomain",
                                                    "nanoseconds"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "wallClock": {
                                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                }
                                              },
                                              "required": [
                                                "sessionId"
                                              ],
                                              "additionalProperties": false
                                            },
                                            "end": {
                                              "type": "object",
                                              "properties": {
                                                "sessionId": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                },
                                                "eventIndex": {
                                                  "type": "integer",
                                                  "minimum": 0,
                                                  "maximum": 9007199254740991
                                                },
                                                "monotonic": {
                                                  "type": "object",
                                                  "properties": {
                                                    "clockDomain": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 160
                                                    },
                                                    "nanoseconds": {
                                                      "type": "string",
                                                      "pattern": "^\\d{1,19}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "clockDomain",
                                                    "nanoseconds"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "wallClock": {
                                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                }
                                              },
                                              "required": [
                                                "sessionId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "start"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "locatorKind": {
                                              "type": "string",
                                              "const": "spatial"
                                            },
                                            "assetId": {
                                              "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)$"
                                            },
                                            "nodePath": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 1024
                                            },
                                            "position": {
                                              "type": "object",
                                              "properties": {
                                                "space": {
                                                  "type": "string",
                                                  "enum": [
                                                    "world",
                                                    "local"
                                                  ]
                                                },
                                                "x": {
                                                  "type": "number"
                                                },
                                                "y": {
                                                  "type": "number"
                                                },
                                                "z": {
                                                  "type": "number"
                                                },
                                                "units": {
                                                  "default": "meters",
                                                  "type": "string",
                                                  "const": "meters"
                                                }
                                              },
                                              "required": [
                                                "space",
                                                "x",
                                                "y",
                                                "z",
                                                "units"
                                              ],
                                              "additionalProperties": false
                                            }
                                          },
                                          "required": [
                                            "locatorKind",
                                            "assetId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    }
                                  },
                                  "entityId": {
                                    "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)$"
                                  },
                                  "conjunctionNote": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "locatorKind",
                                  "components",
                                  "conjunctionNote"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "permittedRepresentations": {
                            "minItems": 1,
                            "maxItems": 7,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "thumbnail",
                                "crop",
                                "waveform",
                                "feature-vector",
                                "transcript-excerpt",
                                "provider-deep-link",
                                "metadata-only"
                              ]
                            }
                          },
                          "acquisition": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "acquiredAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "processor": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "method",
                              "acquiredAt"
                            ],
                            "additionalProperties": false
                          },
                          "derivation": {
                            "type": "object",
                            "properties": {
                              "parentAnchorIds": {
                                "minItems": 1,
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "processor": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "codeVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "modelId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "configuration": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {}
                              }
                            },
                            "required": [
                              "parentAnchorIds",
                              "processor",
                              "codeVersion",
                              "configuration"
                            ],
                            "additionalProperties": false
                          },
                          "rightsGrantIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "scope": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "instant"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "frame"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "time-range"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "beat"
                                  },
                                  "opensWith": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "closesWith": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "kind",
                                  "opensWith",
                                  "closesWith"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "recurring-motif"
                                  },
                                  "recurs": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "recurs"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "discontinuous-interval"
                                  },
                                  "interruptedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "interruptedBy"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "linked-moment"
                                  },
                                  "oneMomentBecause": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "oneMomentBecause"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "entity"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "property"
                                  },
                                  "property": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "property"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "proxyMapping": {
                            "type": "object",
                            "properties": {
                              "viaAssetId": {
                                "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)$"
                              },
                              "proxyStartFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "proxyEndFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "exact": {
                                "type": "boolean"
                              },
                              "maxMasterFramesPerProxyFrame": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "viaAssetId",
                              "proxyStartFrame",
                              "proxyEndFrame",
                              "exact",
                              "maxMasterFramesPerProxyFrame"
                            ],
                            "additionalProperties": false
                          },
                          "migratedFromAnchorId": {
                            "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)$"
                          },
                          "deepLinkPath": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2048
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "editionId",
                          "technicalRevisionHash",
                          "locator",
                          "permittedRepresentations",
                          "acquisition",
                          "rightsGrantIds",
                          "reviewState",
                          "deepLinkPath"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "observations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "modality": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "audible",
                              "source-inspectable"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "scope": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "viewingContext": {
                            "type": "object",
                            "properties": {
                              "firstViewing": {
                                "type": "boolean"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "technicalRevisionHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              },
                              "playheadSeconds": {
                                "type": "number",
                                "minimum": 0
                              },
                              "disclosure": {
                                "type": "object",
                                "properties": {
                                  "structureRevealed": {
                                    "type": "boolean"
                                  },
                                  "revealedUpToSeconds": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "structureRevealed",
                                  "revealedUpToSeconds"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "firstViewing",
                              "editionId",
                              "technicalRevisionHash",
                              "playheadSeconds",
                              "disclosure"
                            ],
                            "additionalProperties": false
                          },
                          "rewatchPass": {
                            "type": "object",
                            "properties": {
                              "focus": {
                                "type": "string",
                                "enum": [
                                  "structure",
                                  "camera",
                                  "performance",
                                  "sound",
                                  "edit",
                                  "costume",
                                  "animation",
                                  "mechanics"
                                ]
                              }
                            },
                            "required": [
                              "focus"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "modality",
                          "description",
                          "scope",
                          "author",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "sourceFacts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "epistemicIdentity": {
                            "type": "string",
                            "const": "source-fact"
                          },
                          "subject": {
                            "type": "object",
                            "properties": {
                              "workId": {
                                "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)$"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "assetId": {
                                "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)$"
                              }
                            },
                            "required": [
                              "workId"
                            ],
                            "additionalProperties": false
                          },
                          "property": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "value": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000
                              },
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              }
                            ]
                          },
                          "unit": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "verification": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "enum": [
                                  "checksum-computation",
                                  "media-probe",
                                  "container-metadata",
                                  "distributor-manifest",
                                  "credits-text",
                                  "spec-document"
                                ]
                              },
                              "verifiedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "processor": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "codeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "required": [
                                  "name",
                                  "codeVersion"
                                ],
                                "additionalProperties": false
                              },
                              "citation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "method",
                              "verifiedAt"
                            ],
                            "additionalProperties": false
                          },
                          "anchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "epistemicIdentity",
                          "subject",
                          "property",
                          "value",
                          "verification",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "claims": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "reading": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 20000
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "epistemicStatus": {
                            "type": "string",
                            "enum": [
                              "directly-observed",
                              "model-suggested",
                              "source-documented",
                              "widely-established-craft-convention",
                              "one-interpretation",
                              "contested",
                              "speculative",
                              "insufficient-context"
                            ]
                          },
                          "supportingAnchorIds": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "counterevidenceAnchorIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "dissents": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "author": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reading": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "supportingAnchorIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "author",
                                "reading",
                                "supportingAnchorIds",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "corpusBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "supportStrength": {
                            "type": "string",
                            "enum": [
                              "single-source",
                              "multiple-scenes",
                              "cross-work",
                              "corpus-wide"
                            ]
                          },
                          "reviewerAgreement": {
                            "type": "object",
                            "properties": {
                              "agree": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "disagree": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "abstain": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "agree",
                              "disagree",
                              "abstain"
                            ],
                            "additionalProperties": false
                          },
                          "culturalContextBounds": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "reviewDecisionIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "reading",
                          "context",
                          "author",
                          "epistemicStatus",
                          "supportingAnchorIds",
                          "counterevidenceAnchorIds",
                          "dissents",
                          "corpusBoundary",
                          "limitations",
                          "reviewState",
                          "reviewDecisionIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "craftHypotheses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "proposition": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "derivedFromClaimIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "derivedFromAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "causalStrength": {
                            "type": "string",
                            "enum": [
                              "correlation-only",
                              "plausible-mechanism",
                              "creator-corroborated",
                              "experimentally-tested"
                            ]
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "counterexampleAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "intendedPractice": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "contextualApplicability": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "proposition",
                          "author",
                          "derivedFromClaimIds",
                          "derivedFromAnchorIds",
                          "causalStrength",
                          "limitations",
                          "counterexampleAnchorIds",
                          "intendedPractice",
                          "contextualApplicability",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "creatorStatements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "epistemicIdentity": {
                            "type": "string",
                            "const": "creator-statement"
                          },
                          "workId": {
                            "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)$"
                          },
                          "speaker": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "name",
                              "role"
                            ],
                            "additionalProperties": false
                          },
                          "statement": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "quotation": {
                            "type": "boolean"
                          },
                          "source": {
                            "type": "object",
                            "properties": {
                              "paratextKind": {
                                "type": "string",
                                "enum": [
                                  "interview",
                                  "commentary-track",
                                  "directors-statement",
                                  "making-of",
                                  "artbook",
                                  "liner-notes",
                                  "patch-notes",
                                  "developer-blog",
                                  "press-kit",
                                  "lecture",
                                  "conference-talk",
                                  "memoir",
                                  "social-post"
                                ]
                              },
                              "citation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "publicationDate": {
                                "type": "string",
                                "pattern": "^\\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01]))?)?$"
                              },
                              "publisher": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "publicationVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "heldAs": {
                                "type": "object",
                                "properties": {
                                  "workId": {
                                    "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)$"
                                  },
                                  "editionId": {
                                    "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)$"
                                  },
                                  "technicalRevisionHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  }
                                },
                                "required": [
                                  "workId"
                                ],
                                "additionalProperties": false
                              },
                              "excerpt": {
                                "type": "object",
                                "properties": {
                                  "unit": {
                                    "type": "string",
                                    "enum": [
                                      "characters",
                                      "seconds"
                                    ]
                                  },
                                  "excerptExtent": {
                                    "type": "number",
                                    "exclusiveMinimum": 0
                                  },
                                  "sourceExtent": {
                                    "type": "number",
                                    "exclusiveMinimum": 0
                                  }
                                },
                                "required": [
                                  "unit",
                                  "excerptExtent",
                                  "sourceExtent"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "paratextKind",
                              "citation"
                            ],
                            "additionalProperties": false
                          },
                          "subjects": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "work"
                                    },
                                    "workId": {
                                      "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)$"
                                    },
                                    "note": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "workId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "scene"
                                    },
                                    "segmentId": {
                                      "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)$"
                                    },
                                    "note": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "segmentId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "entity"
                                    },
                                    "entityId": {
                                      "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)$"
                                    },
                                    "entityKind": {
                                      "type": "string",
                                      "enum": [
                                        "character",
                                        "performer",
                                        "garment",
                                        "prop",
                                        "location",
                                        "camera",
                                        "mechanic",
                                        "level",
                                        "sound",
                                        "motif",
                                        "domain-owned"
                                      ]
                                    },
                                    "note": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "entityId",
                                    "entityKind"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "claim"
                                    },
                                    "claimId": {
                                      "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)$"
                                    },
                                    "note": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "claimId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "anchorIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "epistemicIdentity",
                          "workId",
                          "speaker",
                          "statement",
                          "quotation",
                          "source",
                          "anchorIds",
                          "reviewState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "links": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "relationType": {
                            "type": "string",
                            "enum": [
                              "identity",
                              "similarity",
                              "contrast",
                              "influence",
                              "analogy",
                              "shared-function",
                              "transformation",
                              "sequence",
                              "evolution",
                              "support",
                              "contradiction",
                              "counterexample",
                              "avoidance",
                              "derived-principle",
                              "informed-decision"
                            ]
                          },
                          "directed": {
                            "type": "boolean"
                          },
                          "endpointA": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "corpus",
                                  "work",
                                  "edition",
                                  "sequence",
                                  "scene",
                                  "encounter",
                                  "shot",
                                  "beat",
                                  "frame",
                                  "image",
                                  "region",
                                  "entity",
                                  "material",
                                  "palette",
                                  "pose",
                                  "motion",
                                  "sound",
                                  "transcript",
                                  "runtime-event",
                                  "document-passage",
                                  "claim",
                                  "principle",
                                  "original-concept",
                                  "creative-decision",
                                  "production-artifact",
                                  "anchor",
                                  "segment",
                                  "comparison-set",
                                  "inspiration-item"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "refRevision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "refRevision"
                            ],
                            "additionalProperties": false
                          },
                          "endpointB": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "corpus",
                                  "work",
                                  "edition",
                                  "sequence",
                                  "scene",
                                  "encounter",
                                  "shot",
                                  "beat",
                                  "frame",
                                  "image",
                                  "region",
                                  "entity",
                                  "material",
                                  "palette",
                                  "pose",
                                  "motion",
                                  "sound",
                                  "transcript",
                                  "runtime-event",
                                  "document-passage",
                                  "claim",
                                  "principle",
                                  "original-concept",
                                  "creative-decision",
                                  "production-artifact",
                                  "anchor",
                                  "segment",
                                  "comparison-set",
                                  "inspiration-item"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "refRevision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "refRevision"
                            ],
                            "additionalProperties": false
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "evidenceAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "counterevidenceAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "contextBounds": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "culturalBounds": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "rightsGrantIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "validFrom": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "validUntil": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "relationType",
                          "directed",
                          "endpointA",
                          "endpointB",
                          "rationale",
                          "evidenceAnchorIds",
                          "counterevidenceAnchorIds",
                          "author",
                          "confidence",
                          "reviewState",
                          "contextBounds",
                          "rightsGrantIds",
                          "validFrom",
                          "validUntil"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "project",
                    "works",
                    "editions",
                    "segments",
                    "anchors",
                    "observations",
                    "sourceFacts",
                    "claims",
                    "craftHypotheses",
                    "creatorStatements",
                    "links"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/export": {
      "get": {
        "operationId": "exportTrail",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "objectKey": {
                      "type": "string",
                      "minLength": 1
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "expiresInSeconds": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    },
                    "works": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "anchors": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "observations": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "excludedWorks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "title",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "objectKey",
                    "url",
                    "expiresInSeconds",
                    "works",
                    "anchors",
                    "observations",
                    "excludedWorks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/notebooks": {
      "post": {
        "operationId": "authorNotebook",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "narrative": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500000
                  },
                  "citations": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "marker": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "marker",
                        "anchorId"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "embeds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "anchor-view",
                            "image-region",
                            "annotation",
                            "comparison-view",
                            "matrix-view",
                            "graph-path",
                            "claim-card",
                            "question",
                            "principle",
                            "attempt",
                            "outcome",
                            "decision",
                            "table",
                            "diagram"
                          ]
                        },
                        "refId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 1000
                        },
                        "authoredRepresentation": {
                          "type": "string",
                          "enum": [
                            "thumbnail",
                            "crop",
                            "waveform",
                            "transcript-excerpt",
                            "provider-deep-link",
                            "metadata-only"
                          ]
                        },
                        "narrativeMarker": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20
                        },
                        "content": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "table"
                                },
                                "columns": {
                                  "minItems": 1,
                                  "maxItems": 40,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "key": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "key",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "rows": {
                                  "maxItems": 1000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "propertyNames": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "columns",
                                "rows"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "diagram"
                                },
                                "layout": {
                                  "type": "string",
                                  "enum": [
                                    "flow",
                                    "sequence",
                                    "hierarchy",
                                    "cycle"
                                  ]
                                },
                                "nodes": {
                                  "minItems": 1,
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "edges": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "to": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "from",
                                      "to"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "layout",
                                "nodes",
                                "edges"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "versionPolicy": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "const": "live"
                                }
                              },
                              "required": [
                                "mode"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "const": "frozen"
                                },
                                "pinnedRevision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "pinnedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "mode",
                                "pinnedRevision",
                                "pinnedAt",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "kind",
                        "refId",
                        "authoredRepresentation"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "narrative",
                  "citations"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "notebook": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "narrative": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500000
                        },
                        "citations": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "marker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "stance": {
                                "type": "string",
                                "enum": [
                                  "supports",
                                  "counters"
                                ]
                              }
                            },
                            "required": [
                              "marker",
                              "anchorId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "embeds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "anchor-view",
                                  "image-region",
                                  "annotation",
                                  "comparison-view",
                                  "matrix-view",
                                  "graph-path",
                                  "claim-card",
                                  "question",
                                  "principle",
                                  "attempt",
                                  "outcome",
                                  "decision",
                                  "table",
                                  "diagram"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 1000
                              },
                              "authoredRepresentation": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "crop",
                                  "waveform",
                                  "transcript-excerpt",
                                  "provider-deep-link",
                                  "metadata-only"
                                ]
                              },
                              "narrativeMarker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "content": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "table"
                                      },
                                      "columns": {
                                        "minItems": 1,
                                        "maxItems": 40,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "key": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "key",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "rows": {
                                        "maxItems": 1000,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "maxLength": 2000
                                          }
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "columns",
                                      "rows"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "diagram"
                                      },
                                      "layout": {
                                        "type": "string",
                                        "enum": [
                                          "flow",
                                          "sequence",
                                          "hierarchy",
                                          "cycle"
                                        ]
                                      },
                                      "nodes": {
                                        "minItems": 1,
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "edges": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "to": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "from",
                                            "to"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "layout",
                                      "nodes",
                                      "edges"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "versionPolicy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "live"
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "frozen"
                                      },
                                      "pinnedRevision": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "pinnedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "mode",
                                      "pinnedRevision",
                                      "pinnedAt",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "authoredRepresentation"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cardRefs": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "publicationState": {
                          "type": "string",
                          "enum": [
                            "private",
                            "project-shared",
                            "published"
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "lifecycleState": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "in-review",
                            "approved",
                            "published",
                            "retracted",
                            "archived",
                            "deleted"
                          ]
                        },
                        "lifecycleHistory": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "create",
                                  "submit-for-review",
                                  "comment",
                                  "request-changes",
                                  "approve",
                                  "publish",
                                  "retract",
                                  "archive",
                                  "fork",
                                  "export",
                                  "delete"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "relatedRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "action",
                              "actor",
                              "at",
                              "fromState",
                              "toState",
                              "revision"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "forkedFrom": {
                          "type": "object",
                          "properties": {
                            "notebookRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "forkedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "notebookRef",
                            "revision",
                            "forkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "dissents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "permissions": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "principal": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "user"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "project-role"
                                      },
                                      "role": {
                                        "type": "string",
                                        "enum": [
                                          "owner",
                                          "editor",
                                          "commenter",
                                          "viewer"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "role"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "comment",
                                  "review",
                                  "edit",
                                  "approve"
                                ]
                              },
                              "grantedBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "principal",
                              "capability",
                              "grantedBy",
                              "grantedAt",
                              "expiresAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "title",
                        "narrative",
                        "citations",
                        "embeds",
                        "cardRefs",
                        "publicationState",
                        "author"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "notebook"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "notebook": {
                    "nisabaRef": "clx8yq2f80001abcd12345678",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "title": "Staging depth",
                    "narrative": "Three planes of action [^1].",
                    "citations": [
                      {
                        "marker": "^1",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                      }
                    ],
                    "embeds": [],
                    "cardRefs": [],
                    "publicationState": "private",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listNotebooks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "notebooks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "nisabaRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "narrative": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500000
                          },
                          "citations": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "marker": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 20
                                },
                                "anchorId": {
                                  "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)$"
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 500
                                },
                                "stance": {
                                  "type": "string",
                                  "enum": [
                                    "supports",
                                    "counters"
                                  ]
                                }
                              },
                              "required": [
                                "marker",
                                "anchorId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "embeds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "anchor-view",
                                    "image-region",
                                    "annotation",
                                    "comparison-view",
                                    "matrix-view",
                                    "graph-path",
                                    "claim-card",
                                    "question",
                                    "principle",
                                    "attempt",
                                    "outcome",
                                    "decision",
                                    "table",
                                    "diagram"
                                  ]
                                },
                                "refId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "caption": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "authoredRepresentation": {
                                  "type": "string",
                                  "enum": [
                                    "thumbnail",
                                    "crop",
                                    "waveform",
                                    "transcript-excerpt",
                                    "provider-deep-link",
                                    "metadata-only"
                                  ]
                                },
                                "narrativeMarker": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 20
                                },
                                "content": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "table"
                                        },
                                        "columns": {
                                          "minItems": 1,
                                          "maxItems": 40,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "label": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "label"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "rows": {
                                          "maxItems": 1000,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "propertyNames": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "additionalProperties": {
                                              "type": "string",
                                              "maxLength": 2000
                                            }
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "columns",
                                        "rows"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "diagram"
                                        },
                                        "layout": {
                                          "type": "string",
                                          "enum": [
                                            "flow",
                                            "sequence",
                                            "hierarchy",
                                            "cycle"
                                          ]
                                        },
                                        "nodes": {
                                          "minItems": 1,
                                          "maxItems": 200,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "id": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "label": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 300
                                              }
                                            },
                                            "required": [
                                              "id",
                                              "label"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "edges": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "from": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "to": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "label": {
                                                "type": "string",
                                                "maxLength": 200
                                              }
                                            },
                                            "required": [
                                              "from",
                                              "to"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "layout",
                                        "nodes",
                                        "edges"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "versionPolicy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "mode": {
                                          "type": "string",
                                          "const": "live"
                                        }
                                      },
                                      "required": [
                                        "mode"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "mode": {
                                          "type": "string",
                                          "const": "frozen"
                                        },
                                        "pinnedRevision": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        "pinnedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "reason": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 1000
                                        }
                                      },
                                      "required": [
                                        "mode",
                                        "pinnedRevision",
                                        "pinnedAt",
                                        "reason"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "refId",
                                "authoredRepresentation"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "cardRefs": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "publicationState": {
                            "type": "string",
                            "enum": [
                              "private",
                              "project-shared",
                              "published"
                            ]
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "lifecycleState": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "in-review",
                              "approved",
                              "published",
                              "retracted",
                              "archived",
                              "deleted"
                            ]
                          },
                          "lifecycleHistory": {
                            "maxItems": 5000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "enum": [
                                    "create",
                                    "submit-for-review",
                                    "comment",
                                    "request-changes",
                                    "approve",
                                    "publish",
                                    "retract",
                                    "archive",
                                    "fork",
                                    "export",
                                    "delete"
                                  ]
                                },
                                "actor": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "at": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "fromState": {
                                  "type": "string",
                                  "enum": [
                                    "draft",
                                    "in-review",
                                    "approved",
                                    "published",
                                    "retracted",
                                    "archived",
                                    "deleted"
                                  ]
                                },
                                "toState": {
                                  "type": "string",
                                  "enum": [
                                    "draft",
                                    "in-review",
                                    "approved",
                                    "published",
                                    "retracted",
                                    "archived",
                                    "deleted"
                                  ]
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "note": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "relatedRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "action",
                                "actor",
                                "at",
                                "fromState",
                                "toState",
                                "revision"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "forkedFrom": {
                            "type": "object",
                            "properties": {
                              "notebookRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "forkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "notebookRef",
                              "revision",
                              "forkedAt"
                            ],
                            "additionalProperties": false
                          },
                          "dissents": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "author": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reading": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "supportingAnchorIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "author",
                                "reading",
                                "supportingAnchorIds",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "permissions": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "principal": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "user"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "project-role"
                                        },
                                        "role": {
                                          "type": "string",
                                          "enum": [
                                            "owner",
                                            "editor",
                                            "commenter",
                                            "viewer"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "role"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "capability": {
                                  "type": "string",
                                  "enum": [
                                    "read",
                                    "comment",
                                    "review",
                                    "edit",
                                    "approve"
                                  ]
                                },
                                "grantedBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "grantedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "expiresAt": {
                                  "anyOf": [
                                    {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "principal",
                                "capability",
                                "grantedBy",
                                "grantedAt",
                                "expiresAt"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "nisabaRef",
                          "envelope",
                          "projectId",
                          "title",
                          "narrative",
                          "citations",
                          "embeds",
                          "cardRefs",
                          "publicationState",
                          "author"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "notebooks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/notebooks/{notebookRef}/cards": {
      "post": {
        "operationId": "appendStudyCard",
        "parameters": [
          {
            "name": "notebookRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "insight": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "anchorIds": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "questionId": {
                    "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)$"
                  },
                  "claimId": {
                    "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)$"
                  },
                  "comparisonSetId": {
                    "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)$"
                  },
                  "observationIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "counterevidenceAnchorIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "confidence": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "calibrated"
                          },
                          "value": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "calibration": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "calibrationSetId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "calibrationSetVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "validatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "method",
                              "calibrationSetId",
                              "calibrationSetVersion",
                              "validatedAt"
                            ],
                            "additionalProperties": false
                          },
                          "interval": {
                            "type": "object",
                            "properties": {
                              "lower": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "upper": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "coverage": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "exclusiveMaximum": 1
                              }
                            },
                            "required": [
                              "lower",
                              "upper",
                              "coverage"
                            ],
                            "additionalProperties": false
                          },
                          "applicabilityBoundary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "status",
                          "value",
                          "calibration",
                          "interval",
                          "applicabilityBoundary"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "uncalibrated"
                          },
                          "rawScore": {
                            "type": "number"
                          },
                          "scale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "status",
                          "rawScore",
                          "scale"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "const": "missing"
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "not-applicable",
                              "not-yet-calibrated",
                              "legacy-import",
                              "processor-omitted"
                            ]
                          }
                        },
                        "required": [
                          "status",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "dissents": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "supportingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "recordedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        }
                      },
                      "required": [
                        "author",
                        "reading",
                        "supportingAnchorIds",
                        "recordedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "taxonomyTermIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "practiceLinks": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "exercise"
                            },
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "kind",
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "attempt"
                            },
                            "attemptId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "kind",
                            "attemptId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "spaced-review"
                            },
                            "reviewItemId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "kind",
                            "reviewItemId"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "concept"
                            },
                            "conceptRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "kind",
                            "conceptRef"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "projectId",
                  "insight",
                  "anchorIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "card": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "insight": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "claimId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "comparisonSetId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "questionId": {
                          "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)$"
                        },
                        "observationIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "taxonomyTermIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "practiceLinks": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "exercise"
                                  },
                                  "exerciseId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "exerciseId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "attempt"
                                  },
                                  "attemptId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "attemptId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "spaced-review"
                                  },
                                  "reviewItemId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "reviewItemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "concept"
                                  },
                                  "conceptRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "conceptRef"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "insight",
                        "anchorIds",
                        "claimId",
                        "comparisonSetId",
                        "author"
                      ],
                      "additionalProperties": false
                    },
                    "notebook": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "narrative": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500000
                        },
                        "citations": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "marker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "stance": {
                                "type": "string",
                                "enum": [
                                  "supports",
                                  "counters"
                                ]
                              }
                            },
                            "required": [
                              "marker",
                              "anchorId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "embeds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "anchor-view",
                                  "image-region",
                                  "annotation",
                                  "comparison-view",
                                  "matrix-view",
                                  "graph-path",
                                  "claim-card",
                                  "question",
                                  "principle",
                                  "attempt",
                                  "outcome",
                                  "decision",
                                  "table",
                                  "diagram"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 1000
                              },
                              "authoredRepresentation": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "crop",
                                  "waveform",
                                  "transcript-excerpt",
                                  "provider-deep-link",
                                  "metadata-only"
                                ]
                              },
                              "narrativeMarker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "content": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "table"
                                      },
                                      "columns": {
                                        "minItems": 1,
                                        "maxItems": 40,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "key": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "key",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "rows": {
                                        "maxItems": 1000,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "maxLength": 2000
                                          }
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "columns",
                                      "rows"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "diagram"
                                      },
                                      "layout": {
                                        "type": "string",
                                        "enum": [
                                          "flow",
                                          "sequence",
                                          "hierarchy",
                                          "cycle"
                                        ]
                                      },
                                      "nodes": {
                                        "minItems": 1,
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "edges": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "to": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "from",
                                            "to"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "layout",
                                      "nodes",
                                      "edges"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "versionPolicy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "live"
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "frozen"
                                      },
                                      "pinnedRevision": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "pinnedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "mode",
                                      "pinnedRevision",
                                      "pinnedAt",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "authoredRepresentation"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cardRefs": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "publicationState": {
                          "type": "string",
                          "enum": [
                            "private",
                            "project-shared",
                            "published"
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "lifecycleState": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "in-review",
                            "approved",
                            "published",
                            "retracted",
                            "archived",
                            "deleted"
                          ]
                        },
                        "lifecycleHistory": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "create",
                                  "submit-for-review",
                                  "comment",
                                  "request-changes",
                                  "approve",
                                  "publish",
                                  "retract",
                                  "archive",
                                  "fork",
                                  "export",
                                  "delete"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "relatedRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "action",
                              "actor",
                              "at",
                              "fromState",
                              "toState",
                              "revision"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "forkedFrom": {
                          "type": "object",
                          "properties": {
                            "notebookRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "forkedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "notebookRef",
                            "revision",
                            "forkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "dissents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "permissions": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "principal": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "user"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "project-role"
                                      },
                                      "role": {
                                        "type": "string",
                                        "enum": [
                                          "owner",
                                          "editor",
                                          "commenter",
                                          "viewer"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "role"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "comment",
                                  "review",
                                  "edit",
                                  "approve"
                                ]
                              },
                              "grantedBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "principal",
                              "capability",
                              "grantedBy",
                              "grantedAt",
                              "expiresAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "title",
                        "narrative",
                        "citations",
                        "embeds",
                        "cardRefs",
                        "publicationState",
                        "author"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "card",
                    "notebook"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/notebooks/{notebookRef}/publication": {
      "post": {
        "operationId": "setNotebookPublication",
        "parameters": [
          {
            "name": "notebookRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "publicationState": {
                    "type": "string",
                    "enum": [
                      "private",
                      "project-shared",
                      "published"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "publicationState",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "notebook": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "narrative": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500000
                        },
                        "citations": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "marker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "stance": {
                                "type": "string",
                                "enum": [
                                  "supports",
                                  "counters"
                                ]
                              }
                            },
                            "required": [
                              "marker",
                              "anchorId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "embeds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "anchor-view",
                                  "image-region",
                                  "annotation",
                                  "comparison-view",
                                  "matrix-view",
                                  "graph-path",
                                  "claim-card",
                                  "question",
                                  "principle",
                                  "attempt",
                                  "outcome",
                                  "decision",
                                  "table",
                                  "diagram"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 1000
                              },
                              "authoredRepresentation": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "crop",
                                  "waveform",
                                  "transcript-excerpt",
                                  "provider-deep-link",
                                  "metadata-only"
                                ]
                              },
                              "narrativeMarker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "content": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "table"
                                      },
                                      "columns": {
                                        "minItems": 1,
                                        "maxItems": 40,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "key": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "key",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "rows": {
                                        "maxItems": 1000,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "maxLength": 2000
                                          }
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "columns",
                                      "rows"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "diagram"
                                      },
                                      "layout": {
                                        "type": "string",
                                        "enum": [
                                          "flow",
                                          "sequence",
                                          "hierarchy",
                                          "cycle"
                                        ]
                                      },
                                      "nodes": {
                                        "minItems": 1,
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "edges": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "to": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "from",
                                            "to"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "layout",
                                      "nodes",
                                      "edges"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "versionPolicy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "live"
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "frozen"
                                      },
                                      "pinnedRevision": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "pinnedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "mode",
                                      "pinnedRevision",
                                      "pinnedAt",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "authoredRepresentation"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cardRefs": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "publicationState": {
                          "type": "string",
                          "enum": [
                            "private",
                            "project-shared",
                            "published"
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "lifecycleState": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "in-review",
                            "approved",
                            "published",
                            "retracted",
                            "archived",
                            "deleted"
                          ]
                        },
                        "lifecycleHistory": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "create",
                                  "submit-for-review",
                                  "comment",
                                  "request-changes",
                                  "approve",
                                  "publish",
                                  "retract",
                                  "archive",
                                  "fork",
                                  "export",
                                  "delete"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "relatedRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "action",
                              "actor",
                              "at",
                              "fromState",
                              "toState",
                              "revision"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "forkedFrom": {
                          "type": "object",
                          "properties": {
                            "notebookRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "forkedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "notebookRef",
                            "revision",
                            "forkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "dissents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "permissions": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "principal": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "user"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "project-role"
                                      },
                                      "role": {
                                        "type": "string",
                                        "enum": [
                                          "owner",
                                          "editor",
                                          "commenter",
                                          "viewer"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "role"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "comment",
                                  "review",
                                  "edit",
                                  "approve"
                                ]
                              },
                              "grantedBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "principal",
                              "capability",
                              "grantedBy",
                              "grantedAt",
                              "expiresAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "title",
                        "narrative",
                        "citations",
                        "embeds",
                        "cardRefs",
                        "publicationState",
                        "author"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "notebook"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "notebook": {
                    "nisabaRef": "clx8yq2f80001abcd12345678",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "title": "Staging depth",
                    "narrative": "Three planes of action [^1].",
                    "citations": [
                      {
                        "marker": "^1",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                      }
                    ],
                    "embeds": [],
                    "cardRefs": [],
                    "publicationState": "private",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/notebooks/{notebookRef}/revise": {
      "post": {
        "operationId": "reviseNotebook",
        "parameters": [
          {
            "name": "notebookRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "narrative": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500000
                  },
                  "citations": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "marker": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "marker",
                        "anchorId"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "embeds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "anchor-view",
                            "image-region",
                            "annotation",
                            "comparison-view",
                            "matrix-view",
                            "graph-path",
                            "claim-card",
                            "question",
                            "principle",
                            "attempt",
                            "outcome",
                            "decision",
                            "table",
                            "diagram"
                          ]
                        },
                        "refId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 1000
                        },
                        "authoredRepresentation": {
                          "type": "string",
                          "enum": [
                            "thumbnail",
                            "crop",
                            "waveform",
                            "transcript-excerpt",
                            "provider-deep-link",
                            "metadata-only"
                          ]
                        },
                        "narrativeMarker": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20
                        },
                        "content": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "table"
                                },
                                "columns": {
                                  "minItems": 1,
                                  "maxItems": 40,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "key": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "key",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "rows": {
                                  "maxItems": 1000,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "propertyNames": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "columns",
                                "rows"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "diagram"
                                },
                                "layout": {
                                  "type": "string",
                                  "enum": [
                                    "flow",
                                    "sequence",
                                    "hierarchy",
                                    "cycle"
                                  ]
                                },
                                "nodes": {
                                  "minItems": 1,
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 300
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "label"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "edges": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "to": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "label": {
                                        "type": "string",
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "from",
                                      "to"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "layout",
                                "nodes",
                                "edges"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "versionPolicy": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "const": "live"
                                }
                              },
                              "required": [
                                "mode"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "const": "frozen"
                                },
                                "pinnedRevision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "pinnedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "mode",
                                "pinnedRevision",
                                "pinnedAt",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "kind",
                        "refId",
                        "authoredRepresentation"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "notebook": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "narrative": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500000
                        },
                        "citations": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "marker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "stance": {
                                "type": "string",
                                "enum": [
                                  "supports",
                                  "counters"
                                ]
                              }
                            },
                            "required": [
                              "marker",
                              "anchorId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "embeds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "anchor-view",
                                  "image-region",
                                  "annotation",
                                  "comparison-view",
                                  "matrix-view",
                                  "graph-path",
                                  "claim-card",
                                  "question",
                                  "principle",
                                  "attempt",
                                  "outcome",
                                  "decision",
                                  "table",
                                  "diagram"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 1000
                              },
                              "authoredRepresentation": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "crop",
                                  "waveform",
                                  "transcript-excerpt",
                                  "provider-deep-link",
                                  "metadata-only"
                                ]
                              },
                              "narrativeMarker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "content": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "table"
                                      },
                                      "columns": {
                                        "minItems": 1,
                                        "maxItems": 40,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "key": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "key",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "rows": {
                                        "maxItems": 1000,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "maxLength": 2000
                                          }
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "columns",
                                      "rows"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "diagram"
                                      },
                                      "layout": {
                                        "type": "string",
                                        "enum": [
                                          "flow",
                                          "sequence",
                                          "hierarchy",
                                          "cycle"
                                        ]
                                      },
                                      "nodes": {
                                        "minItems": 1,
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "edges": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "to": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "from",
                                            "to"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "layout",
                                      "nodes",
                                      "edges"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "versionPolicy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "live"
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "frozen"
                                      },
                                      "pinnedRevision": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "pinnedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "mode",
                                      "pinnedRevision",
                                      "pinnedAt",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "authoredRepresentation"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cardRefs": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "publicationState": {
                          "type": "string",
                          "enum": [
                            "private",
                            "project-shared",
                            "published"
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "lifecycleState": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "in-review",
                            "approved",
                            "published",
                            "retracted",
                            "archived",
                            "deleted"
                          ]
                        },
                        "lifecycleHistory": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "create",
                                  "submit-for-review",
                                  "comment",
                                  "request-changes",
                                  "approve",
                                  "publish",
                                  "retract",
                                  "archive",
                                  "fork",
                                  "export",
                                  "delete"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "relatedRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "action",
                              "actor",
                              "at",
                              "fromState",
                              "toState",
                              "revision"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "forkedFrom": {
                          "type": "object",
                          "properties": {
                            "notebookRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "forkedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "notebookRef",
                            "revision",
                            "forkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "dissents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "permissions": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "principal": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "user"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "project-role"
                                      },
                                      "role": {
                                        "type": "string",
                                        "enum": [
                                          "owner",
                                          "editor",
                                          "commenter",
                                          "viewer"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "role"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "comment",
                                  "review",
                                  "edit",
                                  "approve"
                                ]
                              },
                              "grantedBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "principal",
                              "capability",
                              "grantedBy",
                              "grantedAt",
                              "expiresAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "title",
                        "narrative",
                        "citations",
                        "embeds",
                        "cardRefs",
                        "publicationState",
                        "author"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "notebook"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "notebook": {
                    "nisabaRef": "clx8yq2f80001abcd12345678",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "projectId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "title": "Staging depth",
                    "narrative": "Three planes of action [^1].",
                    "citations": [
                      {
                        "marker": "^1",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                      }
                    ],
                    "embeds": [],
                    "cardRefs": [],
                    "publicationState": "private",
                    "author": {
                      "kind": "human",
                      "userId": "u1"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/notebooks/{notebookRef}/export": {
      "get": {
        "operationId": "exportNotebook",
        "parameters": [
          {
            "name": "notebookRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "format": {
                      "type": "string",
                      "const": "oshun-study-notebook/v1"
                    },
                    "notebook": {
                      "type": "object",
                      "properties": {
                        "nisabaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "narrative": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500000
                        },
                        "citations": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "marker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "stance": {
                                "type": "string",
                                "enum": [
                                  "supports",
                                  "counters"
                                ]
                              }
                            },
                            "required": [
                              "marker",
                              "anchorId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "embeds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "anchor-view",
                                  "image-region",
                                  "annotation",
                                  "comparison-view",
                                  "matrix-view",
                                  "graph-path",
                                  "claim-card",
                                  "question",
                                  "principle",
                                  "attempt",
                                  "outcome",
                                  "decision",
                                  "table",
                                  "diagram"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "caption": {
                                "type": "string",
                                "maxLength": 1000
                              },
                              "authoredRepresentation": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "crop",
                                  "waveform",
                                  "transcript-excerpt",
                                  "provider-deep-link",
                                  "metadata-only"
                                ]
                              },
                              "narrativeMarker": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 20
                              },
                              "content": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "table"
                                      },
                                      "columns": {
                                        "minItems": 1,
                                        "maxItems": 40,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "key": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "key",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "rows": {
                                        "maxItems": 1000,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "propertyNames": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 80
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "maxLength": 2000
                                          }
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "columns",
                                      "rows"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "diagram"
                                      },
                                      "layout": {
                                        "type": "string",
                                        "enum": [
                                          "flow",
                                          "sequence",
                                          "hierarchy",
                                          "cycle"
                                        ]
                                      },
                                      "nodes": {
                                        "minItems": 1,
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 300
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "label"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "edges": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "from": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "to": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "label": {
                                              "type": "string",
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "from",
                                            "to"
                                          ],
                                          "additionalProperties": false
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "layout",
                                      "nodes",
                                      "edges"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "versionPolicy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "live"
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "const": "frozen"
                                      },
                                      "pinnedRevision": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "pinnedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "mode",
                                      "pinnedRevision",
                                      "pinnedAt",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "authoredRepresentation"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "cardRefs": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "publicationState": {
                          "type": "string",
                          "enum": [
                            "private",
                            "project-shared",
                            "published"
                          ]
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "lifecycleState": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "in-review",
                            "approved",
                            "published",
                            "retracted",
                            "archived",
                            "deleted"
                          ]
                        },
                        "lifecycleHistory": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "action": {
                                "type": "string",
                                "enum": [
                                  "create",
                                  "submit-for-review",
                                  "comment",
                                  "request-changes",
                                  "approve",
                                  "publish",
                                  "retract",
                                  "archive",
                                  "fork",
                                  "export",
                                  "delete"
                                ]
                              },
                              "actor": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "fromState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "toState": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "in-review",
                                  "approved",
                                  "published",
                                  "retracted",
                                  "archived",
                                  "deleted"
                                ]
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "relatedRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "action",
                              "actor",
                              "at",
                              "fromState",
                              "toState",
                              "revision"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "forkedFrom": {
                          "type": "object",
                          "properties": {
                            "notebookRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "forkedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "notebookRef",
                            "revision",
                            "forkedAt"
                          ],
                          "additionalProperties": false
                        },
                        "dissents": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "permissions": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "principal": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "user"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "project-role"
                                      },
                                      "role": {
                                        "type": "string",
                                        "enum": [
                                          "owner",
                                          "editor",
                                          "commenter",
                                          "viewer"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "role"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "read",
                                  "comment",
                                  "review",
                                  "edit",
                                  "approve"
                                ]
                              },
                              "grantedBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "principal",
                              "capability",
                              "grantedBy",
                              "grantedAt",
                              "expiresAt"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "nisabaRef",
                        "envelope",
                        "projectId",
                        "title",
                        "narrative",
                        "citations",
                        "embeds",
                        "cardRefs",
                        "publicationState",
                        "author"
                      ],
                      "additionalProperties": false
                    },
                    "cards": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "nisabaRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "insight": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "claimId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "comparisonSetId": {
                            "anyOf": [
                              {
                                "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)$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "questionId": {
                            "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)$"
                          },
                          "observationIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "counterevidenceAnchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "dissents": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "author": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "reading": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "supportingAnchorIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "author",
                                "reading",
                                "supportingAnchorIds",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "context": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "taxonomyTermIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "practiceLinks": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "exercise"
                                    },
                                    "exerciseId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "exerciseId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "attempt"
                                    },
                                    "attemptId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "attemptId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "spaced-review"
                                    },
                                    "reviewItemId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "reviewItemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "concept"
                                    },
                                    "conceptRef": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "conceptRef"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          }
                        },
                        "required": [
                          "nisabaRef",
                          "envelope",
                          "projectId",
                          "insight",
                          "anchorIds",
                          "claimId",
                          "comparisonSetId",
                          "author"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "citedAnchors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "marker": {
                            "type": "string"
                          },
                          "anchorId": {
                            "type": "string"
                          },
                          "included": {
                            "type": "boolean"
                          },
                          "editionId": {
                            "type": "string"
                          },
                          "workId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "marker",
                          "anchorId",
                          "included"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "suppressedCitationCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "format",
                    "notebook",
                    "cards",
                    "citedAnchors",
                    "suppressedCitationCount"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/search": {
      "get": {
        "operationId": "searchProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "work",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "medium",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "yearFrom",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "yearTo",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "hits": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "work",
                              "segment",
                              "entity",
                              "runtime-event",
                              "observation",
                              "interpretation",
                              "craft-hypothesis",
                              "creator-statement"
                            ]
                          },
                          "recordId": {
                            "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)$"
                          },
                          "workId": {
                            "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)$"
                          },
                          "editionId": {
                            "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)$"
                          },
                          "field": {
                            "type": "string",
                            "enum": [
                              "title",
                              "creators",
                              "label",
                              "name",
                              "session",
                              "description",
                              "scope",
                              "reading",
                              "proposition",
                              "statement"
                            ]
                          },
                          "snippet": {
                            "type": "string",
                            "minLength": 1
                          },
                          "score": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "epistemicType": {
                            "type": "string",
                            "enum": [
                              "source-fact",
                              "detection",
                              "observation",
                              "interpretation",
                              "craft-hypothesis",
                              "creator-statement",
                              "practice-result"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "recordId",
                          "field",
                          "snippet",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "excludedWorks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "title",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "searchedWorks": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "hits",
                    "excludedWorks",
                    "searchedWorks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/vector-search": {
      "post": {
        "operationId": "vectorSearchProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "modality": {
                    "type": "string",
                    "enum": [
                      "semantic",
                      "visual",
                      "motion",
                      "audio"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "probe": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "text"
                          },
                          "text": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "kind",
                          "text"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "record"
                          },
                          "family": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "recordId": {
                            "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)$"
                          }
                        },
                        "required": [
                          "kind",
                          "family",
                          "recordId"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 50
                  }
                },
                "required": [
                  "modality",
                  "territory",
                  "probe"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "neighbors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "modality": {
                            "type": "string",
                            "enum": [
                              "semantic",
                              "visual",
                              "motion",
                              "audio"
                            ]
                          },
                          "family": {
                            "type": "string"
                          },
                          "recordId": {
                            "type": "string"
                          },
                          "similarity": {
                            "type": "number"
                          },
                          "modelId": {
                            "type": "string"
                          },
                          "modelVersion": {
                            "type": "string"
                          },
                          "sourceVersion": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "modality",
                          "family",
                          "recordId",
                          "similarity",
                          "modelId",
                          "modelVersion",
                          "sourceVersion"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "suppressedDocs": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "neighbors",
                    "suppressedDocs"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/edge-endpoints": {
      "post": {
        "operationId": "searchEdgeEndpoints",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "relationType": {
                    "type": "string",
                    "enum": [
                      "identity",
                      "similarity",
                      "contrast",
                      "influence",
                      "analogy",
                      "shared-function",
                      "transformation",
                      "sequence",
                      "evolution",
                      "support",
                      "contradiction",
                      "counterexample",
                      "avoidance",
                      "derived-principle",
                      "informed-decision"
                    ]
                  },
                  "side": {
                    "type": "string",
                    "enum": [
                      "A",
                      "B"
                    ]
                  },
                  "query": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 400
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "otherEndpoint": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "corpus",
                          "work",
                          "edition",
                          "sequence",
                          "scene",
                          "encounter",
                          "shot",
                          "beat",
                          "frame",
                          "image",
                          "region",
                          "entity",
                          "material",
                          "palette",
                          "pose",
                          "motion",
                          "sound",
                          "transcript",
                          "runtime-event",
                          "document-passage",
                          "claim",
                          "principle",
                          "original-concept",
                          "creative-decision",
                          "production-artifact",
                          "anchor",
                          "segment",
                          "comparison-set",
                          "inspiration-item"
                        ]
                      },
                      "refId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "refId"
                    ],
                    "additionalProperties": false
                  },
                  "mediums": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 80
                    }
                  },
                  "workIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "relationType",
                  "side",
                  "query",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "relationType": {
                      "type": "string",
                      "enum": [
                        "identity",
                        "similarity",
                        "contrast",
                        "influence",
                        "analogy",
                        "shared-function",
                        "transformation",
                        "sequence",
                        "evolution",
                        "support",
                        "contradiction",
                        "counterexample",
                        "avoidance",
                        "derived-principle",
                        "informed-decision"
                      ]
                    },
                    "side": {
                      "type": "string",
                      "enum": [
                        "A",
                        "B"
                      ]
                    },
                    "labels": {
                      "type": "object",
                      "properties": {
                        "directed": {
                          "type": "boolean"
                        },
                        "forwardLabel": {
                          "type": "string"
                        },
                        "inverseLabel": {
                          "type": "string"
                        },
                        "sideDescription": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "directed",
                        "forwardLabel",
                        "inverseLabel",
                        "sideDescription"
                      ],
                      "additionalProperties": false
                    },
                    "permittedKinds": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "any"
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "corpus",
                              "work",
                              "edition",
                              "sequence",
                              "scene",
                              "encounter",
                              "shot",
                              "beat",
                              "frame",
                              "image",
                              "region",
                              "entity",
                              "material",
                              "palette",
                              "pose",
                              "motion",
                              "sound",
                              "transcript",
                              "runtime-event",
                              "document-passage",
                              "claim",
                              "principle",
                              "original-concept",
                              "creative-decision",
                              "production-artifact",
                              "anchor",
                              "segment",
                              "comparison-set",
                              "inspiration-item"
                            ]
                          }
                        }
                      ]
                    },
                    "offered": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "corpus",
                              "work",
                              "edition",
                              "sequence",
                              "scene",
                              "encounter",
                              "shot",
                              "beat",
                              "frame",
                              "image",
                              "region",
                              "entity",
                              "material",
                              "palette",
                              "pose",
                              "motion",
                              "sound",
                              "transcript",
                              "runtime-event",
                              "document-passage",
                              "claim",
                              "principle",
                              "original-concept",
                              "creative-decision",
                              "production-artifact",
                              "anchor",
                              "segment",
                              "comparison-set",
                              "inspiration-item"
                            ]
                          },
                          "refId": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "kind",
                          "refId",
                          "label",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "dropped": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "candidate": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "corpus",
                                  "work",
                                  "edition",
                                  "sequence",
                                  "scene",
                                  "encounter",
                                  "shot",
                                  "beat",
                                  "frame",
                                  "image",
                                  "region",
                                  "entity",
                                  "material",
                                  "palette",
                                  "pose",
                                  "motion",
                                  "sound",
                                  "transcript",
                                  "runtime-event",
                                  "document-passage",
                                  "claim",
                                  "principle",
                                  "original-concept",
                                  "creative-decision",
                                  "production-artifact",
                                  "anchor",
                                  "segment",
                                  "comparison-set",
                                  "inspiration-item"
                                ]
                              },
                              "refId": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "score": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "label",
                              "score"
                            ],
                            "additionalProperties": false
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "kind-not-permitted",
                              "same-kind-required",
                              "already-the-other-endpoint"
                            ]
                          },
                          "detail": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "candidate",
                          "reason",
                          "detail"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "emptyReason": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "unaddressable": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string"
                          },
                          "recordId": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "recordId",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "excludedWorks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "title",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "relationType",
                    "side",
                    "labels",
                    "permittedKinds",
                    "offered",
                    "dropped",
                    "emptyReason",
                    "unaddressable",
                    "excludedWorks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/graph-neighborhood": {
      "post": {
        "operationId": "graphNeighborhood",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "start": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "refId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "refId"
                    ],
                    "additionalProperties": false
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "maxDepth": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 4
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500
                  }
                },
                "required": [
                  "start",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "nodes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string"
                          },
                          "refId": {
                            "type": "string"
                          },
                          "depth": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "kind",
                          "refId",
                          "depth"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "edges": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "edgeKind": {
                            "type": "string"
                          },
                          "relationType": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "directed": {
                            "type": "boolean"
                          },
                          "src": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "refId"
                            ],
                            "additionalProperties": false
                          },
                          "dst": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "refId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "edgeKind",
                          "relationType",
                          "directed",
                          "src",
                          "dst"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "suppressedEdges": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "truncated": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "nodes",
                    "edges",
                    "suppressedEdges",
                    "truncated"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/cross-references": {
      "post": {
        "operationId": "createCrossReference",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "relationType": {
                    "type": "string",
                    "enum": [
                      "identity",
                      "similarity",
                      "contrast",
                      "influence",
                      "analogy",
                      "shared-function",
                      "transformation",
                      "sequence",
                      "evolution",
                      "support",
                      "contradiction",
                      "counterexample",
                      "avoidance",
                      "derived-principle",
                      "informed-decision"
                    ]
                  },
                  "endpointA": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "corpus",
                          "work",
                          "edition",
                          "sequence",
                          "scene",
                          "encounter",
                          "shot",
                          "beat",
                          "frame",
                          "image",
                          "region",
                          "entity",
                          "material",
                          "palette",
                          "pose",
                          "motion",
                          "sound",
                          "transcript",
                          "runtime-event",
                          "document-passage",
                          "claim",
                          "principle",
                          "original-concept",
                          "creative-decision",
                          "production-artifact",
                          "anchor",
                          "segment",
                          "comparison-set",
                          "inspiration-item"
                        ]
                      },
                      "refId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "refRevision": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "kind",
                      "refId",
                      "refRevision"
                    ],
                    "additionalProperties": false
                  },
                  "endpointB": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "corpus",
                          "work",
                          "edition",
                          "sequence",
                          "scene",
                          "encounter",
                          "shot",
                          "beat",
                          "frame",
                          "image",
                          "region",
                          "entity",
                          "material",
                          "palette",
                          "pose",
                          "motion",
                          "sound",
                          "transcript",
                          "runtime-event",
                          "document-passage",
                          "claim",
                          "principle",
                          "original-concept",
                          "creative-decision",
                          "production-artifact",
                          "anchor",
                          "segment",
                          "comparison-set",
                          "inspiration-item"
                        ]
                      },
                      "refId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "refRevision": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "kind",
                      "refId",
                      "refRevision"
                    ],
                    "additionalProperties": false
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "evidenceAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "counterevidenceAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "contextBounds": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "culturalBounds": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "provisional": {
                    "type": "boolean"
                  },
                  "validUntil": {
                    "anyOf": [
                      {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "projectId",
                  "relationType",
                  "endpointA",
                  "endpointB",
                  "rationale",
                  "contextBounds",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "crossReference": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "relationType": {
                          "type": "string",
                          "enum": [
                            "identity",
                            "similarity",
                            "contrast",
                            "influence",
                            "analogy",
                            "shared-function",
                            "transformation",
                            "sequence",
                            "evolution",
                            "support",
                            "contradiction",
                            "counterexample",
                            "avoidance",
                            "derived-principle",
                            "informed-decision"
                          ]
                        },
                        "directed": {
                          "type": "boolean"
                        },
                        "endpointA": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "endpointB": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "evidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "contextBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "culturalBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "relationType",
                        "directed",
                        "endpointA",
                        "endpointB",
                        "rationale",
                        "evidenceAnchorIds",
                        "counterevidenceAnchorIds",
                        "author",
                        "confidence",
                        "reviewState",
                        "contextBounds",
                        "rightsGrantIds",
                        "validFrom",
                        "validUntil"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "crossReference"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/cross-references/{crossReferenceId}/keep-distinct": {
      "post": {
        "operationId": "keepDistinct",
        "parameters": [
          {
            "name": "crossReferenceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "51e1e9de-3969-4f3a-aeb8-1033c95d2d09"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "crossReference": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "relationType": {
                          "type": "string",
                          "enum": [
                            "identity",
                            "similarity",
                            "contrast",
                            "influence",
                            "analogy",
                            "shared-function",
                            "transformation",
                            "sequence",
                            "evolution",
                            "support",
                            "contradiction",
                            "counterexample",
                            "avoidance",
                            "derived-principle",
                            "informed-decision"
                          ]
                        },
                        "directed": {
                          "type": "boolean"
                        },
                        "endpointA": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "endpointB": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "evidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "contextBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "culturalBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "relationType",
                        "directed",
                        "endpointA",
                        "endpointB",
                        "rationale",
                        "evidenceAnchorIds",
                        "counterevidenceAnchorIds",
                        "author",
                        "confidence",
                        "reviewState",
                        "contextBounds",
                        "rightsGrantIds",
                        "validFrom",
                        "validUntil"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "crossReference"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/cross-references": {
      "get": {
        "operationId": "listCrossReferences",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "crossReferences": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "relationType": {
                            "type": "string",
                            "enum": [
                              "identity",
                              "similarity",
                              "contrast",
                              "influence",
                              "analogy",
                              "shared-function",
                              "transformation",
                              "sequence",
                              "evolution",
                              "support",
                              "contradiction",
                              "counterexample",
                              "avoidance",
                              "derived-principle",
                              "informed-decision"
                            ]
                          },
                          "directed": {
                            "type": "boolean"
                          },
                          "endpointA": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "corpus",
                                  "work",
                                  "edition",
                                  "sequence",
                                  "scene",
                                  "encounter",
                                  "shot",
                                  "beat",
                                  "frame",
                                  "image",
                                  "region",
                                  "entity",
                                  "material",
                                  "palette",
                                  "pose",
                                  "motion",
                                  "sound",
                                  "transcript",
                                  "runtime-event",
                                  "document-passage",
                                  "claim",
                                  "principle",
                                  "original-concept",
                                  "creative-decision",
                                  "production-artifact",
                                  "anchor",
                                  "segment",
                                  "comparison-set",
                                  "inspiration-item"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "refRevision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "refRevision"
                            ],
                            "additionalProperties": false
                          },
                          "endpointB": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "corpus",
                                  "work",
                                  "edition",
                                  "sequence",
                                  "scene",
                                  "encounter",
                                  "shot",
                                  "beat",
                                  "frame",
                                  "image",
                                  "region",
                                  "entity",
                                  "material",
                                  "palette",
                                  "pose",
                                  "motion",
                                  "sound",
                                  "transcript",
                                  "runtime-event",
                                  "document-passage",
                                  "claim",
                                  "principle",
                                  "original-concept",
                                  "creative-decision",
                                  "production-artifact",
                                  "anchor",
                                  "segment",
                                  "comparison-set",
                                  "inspiration-item"
                                ]
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "refRevision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "kind",
                              "refId",
                              "refRevision"
                            ],
                            "additionalProperties": false
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "evidenceAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "counterevidenceAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "confidence": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "calibrated"
                                  },
                                  "value": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "calibration": {
                                    "type": "object",
                                    "properties": {
                                      "method": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "calibrationSetId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "calibrationSetVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "validatedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "method",
                                      "calibrationSetId",
                                      "calibrationSetVersion",
                                      "validatedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "interval": {
                                    "type": "object",
                                    "properties": {
                                      "lower": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "upper": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "coverage": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "exclusiveMaximum": 1
                                      }
                                    },
                                    "required": [
                                      "lower",
                                      "upper",
                                      "coverage"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "applicabilityBoundary": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "status",
                                  "value",
                                  "calibration",
                                  "interval",
                                  "applicabilityBoundary"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "uncalibrated"
                                  },
                                  "rawScore": {
                                    "type": "number"
                                  },
                                  "scale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "status",
                                  "rawScore",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "status": {
                                    "type": "string",
                                    "const": "missing"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "enum": [
                                      "not-applicable",
                                      "not-yet-calibrated",
                                      "legacy-import",
                                      "processor-omitted"
                                    ]
                                  }
                                },
                                "required": [
                                  "status",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "contextBounds": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "culturalBounds": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "rightsGrantIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "validFrom": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "validUntil": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "relationType",
                          "directed",
                          "endpointA",
                          "endpointB",
                          "rationale",
                          "evidenceAnchorIds",
                          "counterevidenceAnchorIds",
                          "author",
                          "confidence",
                          "reviewState",
                          "contextBounds",
                          "rightsGrantIds",
                          "validFrom",
                          "validUntil"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "crossReferences"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/cross-references/impact": {
      "post": {
        "operationId": "crossReferenceImpact",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "node": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "refId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "refId"
                    ],
                    "additionalProperties": false
                  },
                  "maxNodes": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "required": [
                  "node"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "dependents": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "node": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "refId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "refId"
                            ],
                            "additionalProperties": false
                          },
                          "viaEdgeIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "node",
                          "viaEdgeIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "touchingEdgeIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "truncated": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "dependents",
                    "touchingEdgeIds",
                    "truncated"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/graph-clusters": {
      "post": {
        "operationId": "graphClusters",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "clusters": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "nodes": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "refId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "refId"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "nodes"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "suppressedEdges": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "truncated": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "clusters",
                    "suppressedEdges",
                    "truncated"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/graph-views": {
      "post": {
        "operationId": "saveGraphView",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "view": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "description": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "layout": {
                        "type": "string",
                        "enum": [
                          "manual",
                          "force",
                          "hierarchic",
                          "timeline"
                        ]
                      },
                      "placements": {
                        "maxItems": 5000,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "node": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "corpus",
                                    "work",
                                    "edition",
                                    "sequence",
                                    "scene",
                                    "encounter",
                                    "shot",
                                    "beat",
                                    "frame",
                                    "image",
                                    "region",
                                    "entity",
                                    "material",
                                    "palette",
                                    "pose",
                                    "motion",
                                    "sound",
                                    "transcript",
                                    "runtime-event",
                                    "document-passage",
                                    "claim",
                                    "principle",
                                    "original-concept",
                                    "creative-decision",
                                    "production-artifact",
                                    "anchor",
                                    "segment",
                                    "comparison-set",
                                    "inspiration-item"
                                  ]
                                },
                                "refId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "refId"
                              ],
                              "additionalProperties": false
                            },
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "pinned": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "node",
                            "x",
                            "y"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "groups": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "memberNodes": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "corpus",
                                      "work",
                                      "edition",
                                      "sequence",
                                      "scene",
                                      "encounter",
                                      "shot",
                                      "beat",
                                      "frame",
                                      "image",
                                      "region",
                                      "entity",
                                      "material",
                                      "palette",
                                      "pose",
                                      "motion",
                                      "sound",
                                      "transcript",
                                      "runtime-event",
                                      "document-passage",
                                      "claim",
                                      "principle",
                                      "original-concept",
                                      "creative-decision",
                                      "production-artifact",
                                      "anchor",
                                      "segment",
                                      "comparison-set",
                                      "inspiration-item"
                                    ]
                                  },
                                  "refId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "refId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "colorHex": {
                              "type": "string",
                              "pattern": "^#[0-9a-f]{6}$"
                            },
                            "collapsed": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name",
                            "memberNodes"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "filter": {
                        "type": "object",
                        "properties": {
                          "relationTypes": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "identity",
                                "similarity",
                                "contrast",
                                "influence",
                                "analogy",
                                "shared-function",
                                "transformation",
                                "sequence",
                                "evolution",
                                "support",
                                "contradiction",
                                "counterexample",
                                "avoidance",
                                "derived-principle",
                                "informed-decision"
                              ]
                            }
                          },
                          "nodeKinds": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            }
                          },
                          "reviewStates": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            }
                          },
                          "includeSuperseded": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "name",
                      "layout",
                      "placements",
                      "groups"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "view"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "savedView": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "projectId": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "createdBy": {
                          "type": "string"
                        },
                        "view": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "layout": {
                              "type": "string",
                              "enum": [
                                "manual",
                                "force",
                                "hierarchic",
                                "timeline"
                              ]
                            },
                            "placements": {
                              "maxItems": 5000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "node": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "corpus",
                                          "work",
                                          "edition",
                                          "sequence",
                                          "scene",
                                          "encounter",
                                          "shot",
                                          "beat",
                                          "frame",
                                          "image",
                                          "region",
                                          "entity",
                                          "material",
                                          "palette",
                                          "pose",
                                          "motion",
                                          "sound",
                                          "transcript",
                                          "runtime-event",
                                          "document-passage",
                                          "claim",
                                          "principle",
                                          "original-concept",
                                          "creative-decision",
                                          "production-artifact",
                                          "anchor",
                                          "segment",
                                          "comparison-set",
                                          "inspiration-item"
                                        ]
                                      },
                                      "refId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "refId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  },
                                  "pinned": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "node",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "groups": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "memberNodes": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "corpus",
                                            "work",
                                            "edition",
                                            "sequence",
                                            "scene",
                                            "encounter",
                                            "shot",
                                            "beat",
                                            "frame",
                                            "image",
                                            "region",
                                            "entity",
                                            "material",
                                            "palette",
                                            "pose",
                                            "motion",
                                            "sound",
                                            "transcript",
                                            "runtime-event",
                                            "document-passage",
                                            "claim",
                                            "principle",
                                            "original-concept",
                                            "creative-decision",
                                            "production-artifact",
                                            "anchor",
                                            "segment",
                                            "comparison-set",
                                            "inspiration-item"
                                          ]
                                        },
                                        "refId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "refId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "colorHex": {
                                    "type": "string",
                                    "pattern": "^#[0-9a-f]{6}$"
                                  },
                                  "collapsed": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "name",
                                  "memberNodes"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "filter": {
                              "type": "object",
                              "properties": {
                                "relationTypes": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "identity",
                                      "similarity",
                                      "contrast",
                                      "influence",
                                      "analogy",
                                      "shared-function",
                                      "transformation",
                                      "sequence",
                                      "evolution",
                                      "support",
                                      "contradiction",
                                      "counterexample",
                                      "avoidance",
                                      "derived-principle",
                                      "informed-decision"
                                    ]
                                  }
                                },
                                "nodeKinds": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "corpus",
                                      "work",
                                      "edition",
                                      "sequence",
                                      "scene",
                                      "encounter",
                                      "shot",
                                      "beat",
                                      "frame",
                                      "image",
                                      "region",
                                      "entity",
                                      "material",
                                      "palette",
                                      "pose",
                                      "motion",
                                      "sound",
                                      "transcript",
                                      "runtime-event",
                                      "document-passage",
                                      "claim",
                                      "principle",
                                      "original-concept",
                                      "creative-decision",
                                      "production-artifact",
                                      "anchor",
                                      "segment",
                                      "comparison-set",
                                      "inspiration-item"
                                    ]
                                  }
                                },
                                "reviewStates": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "suggested",
                                      "accepted",
                                      "corrected",
                                      "contested",
                                      "rejected",
                                      "superseded"
                                    ]
                                  }
                                },
                                "includeSuperseded": {
                                  "type": "boolean"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "name",
                            "layout",
                            "placements",
                            "groups"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "projectId",
                        "name",
                        "createdBy",
                        "view",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "savedView"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listGraphViews",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "savedViews": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "savedViews"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/original-concepts": {
      "post": {
        "operationId": "createOriginalConcept",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "character",
                      "environment",
                      "world",
                      "camera-language",
                      "narrative-system",
                      "sound-identity",
                      "mechanic"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "relationships": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "contains",
                            "depends-on",
                            "contrasts-with",
                            "variant-of"
                          ]
                        },
                        "otherConceptId": {
                          "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)$"
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "kind",
                        "otherConceptId"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "informedByPrincipleIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "consultedInspirationItemIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "groupAuthorId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "projectId",
                  "kind",
                  "name",
                  "description",
                  "rationale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "concept": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "environment",
                            "world",
                            "camera-language",
                            "narrative-system",
                            "sound-identity",
                            "mechanic"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "relationships": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "contains",
                                  "depends-on",
                                  "contrasts-with",
                                  "variant-of"
                                ]
                              },
                              "otherConceptId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "kind",
                              "otherConceptId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "informedByPrincipleIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "consultedInspirationItemIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "kind",
                        "name",
                        "description",
                        "rationale",
                        "relationships",
                        "author",
                        "informedByPrincipleIds",
                        "consultedInspirationItemIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "concept"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/original-concepts/{conceptId}/update": {
      "post": {
        "operationId": "updateOriginalConcept",
        "parameters": [
          {
            "name": "conceptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "4436f475-4f6c-4b92-aa84-5542be3d4105"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "relationships": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "contains",
                            "depends-on",
                            "contrasts-with",
                            "variant-of"
                          ]
                        },
                        "otherConceptId": {
                          "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)$"
                        },
                        "note": {
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "kind",
                        "otherConceptId"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "informedByPrincipleIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "consultedInspirationItemIds": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "concept": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "environment",
                            "world",
                            "camera-language",
                            "narrative-system",
                            "sound-identity",
                            "mechanic"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "relationships": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "contains",
                                  "depends-on",
                                  "contrasts-with",
                                  "variant-of"
                                ]
                              },
                              "otherConceptId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "kind",
                              "otherConceptId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "informedByPrincipleIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "consultedInspirationItemIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "kind",
                        "name",
                        "description",
                        "rationale",
                        "relationships",
                        "author",
                        "informedByPrincipleIds",
                        "consultedInspirationItemIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "concept"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/original-concepts/{conceptId}": {
      "get": {
        "operationId": "getOriginalConcept",
        "parameters": [
          {
            "name": "conceptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "4436f475-4f6c-4b92-aa84-5542be3d4105"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "concept": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "character",
                            "environment",
                            "world",
                            "camera-language",
                            "narrative-system",
                            "sound-identity",
                            "mechanic"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "relationships": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "contains",
                                  "depends-on",
                                  "contrasts-with",
                                  "variant-of"
                                ]
                              },
                              "otherConceptId": {
                                "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)$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "kind",
                              "otherConceptId"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "informedByPrincipleIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "consultedInspirationItemIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "kind",
                        "name",
                        "description",
                        "rationale",
                        "relationships",
                        "author",
                        "informedByPrincipleIds",
                        "consultedInspirationItemIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "concept"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/original-concepts": {
      "get": {
        "operationId": "listOriginalConcepts",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "concepts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "character",
                              "environment",
                              "world",
                              "camera-language",
                              "narrative-system",
                              "sound-identity",
                              "mechanic"
                            ]
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "description": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 20000
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "relationships": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "contains",
                                    "depends-on",
                                    "contrasts-with",
                                    "variant-of"
                                  ]
                                },
                                "otherConceptId": {
                                  "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)$"
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "kind",
                                "otherConceptId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "author": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "model"
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "analysisRunId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "modelId",
                                  "modelVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "imported-system"
                                  },
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "importBatchId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "systemId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "collaborative-group"
                                  },
                                  "groupId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "memberUserIds": {
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  }
                                },
                                "required": [
                                  "kind",
                                  "groupId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "informedByPrincipleIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "consultedInspirationItemIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "kind",
                          "name",
                          "description",
                          "rationale",
                          "relationships",
                          "author",
                          "informedByPrincipleIds",
                          "consultedInspirationItemIds"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "concepts"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/concept-system-map": {
      "get": {
        "operationId": "conceptSystemMap",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "map": {
                      "type": "object",
                      "properties": {
                        "nodes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "character",
                                  "environment",
                                  "world",
                                  "camera-language",
                                  "narrative-system",
                                  "sound-identity",
                                  "mechanic"
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "name",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "edges": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "from": {
                                "type": "string"
                              },
                              "to": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "contains",
                                  "depends-on",
                                  "contrasts-with",
                                  "variant-of"
                                ]
                              },
                              "note": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "from",
                              "to",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "danglingEdgeCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "nodes",
                        "edges",
                        "danglingEdgeCount"
                      ],
                      "additionalProperties": false
                    },
                    "consistencyQuestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "conceptId": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "dangling-reference",
                              "containment-cycle",
                              "dependency-cycle",
                              "conflicting-relationship"
                            ]
                          },
                          "detail": {
                            "type": "string"
                          },
                          "relatedConceptIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "conceptId",
                          "kind",
                          "detail",
                          "relatedConceptIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "groundingCoverage": {
                      "type": "object",
                      "properties": {
                        "perConcept": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "conceptId": {
                                "type": "string"
                              },
                              "principleCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "inspirationCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "grounded": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "conceptId",
                              "principleCount",
                              "inspirationCount",
                              "grounded"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "ungroundedConceptIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "groundedRatio": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "perConcept",
                        "ungroundedConceptIds",
                        "groundedRatio"
                      ],
                      "additionalProperties": false
                    },
                    "advisories": {
                      "type": "object",
                      "properties": {
                        "advisories": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source-concentration",
                                  "overly-direct-mapping",
                                  "unsupported-assumption",
                                  "missing-perspective",
                                  "unevidenced-concept"
                                ]
                              },
                              "conceptId": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "subject": {
                                "type": "string"
                              },
                              "detail": {
                                "type": "string"
                              },
                              "evidence": {
                                "type": "string"
                              },
                              "question": {
                                "type": "string"
                              },
                              "advisory": {
                                "type": "boolean",
                                "const": true
                              }
                            },
                            "required": [
                              "kind",
                              "conceptId",
                              "subject",
                              "detail",
                              "evidence",
                              "question",
                              "advisory"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "byKind": {
                          "type": "object",
                          "properties": {
                            "source-concentration": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "overly-direct-mapping": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "unsupported-assumption": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "missing-perspective": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "unevidenced-concept": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "source-concentration",
                            "overly-direct-mapping",
                            "unsupported-assumption",
                            "missing-perspective",
                            "unevidenced-concept"
                          ],
                          "additionalProperties": false
                        },
                        "reviewedConcepts": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "clearConceptIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "scoreRefusal": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "advisories",
                        "byKind",
                        "reviewedConcepts",
                        "clearConceptIds",
                        "disclaimer",
                        "scoreRefusal"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "map",
                    "consistencyQuestions",
                    "groundingCoverage",
                    "advisories"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions": {
      "post": {
        "operationId": "createCreativeDecision",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "decision": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "origin": {
                    "type": "string",
                    "enum": [
                      "derived",
                      "unsupported-original-exploration"
                    ]
                  },
                  "transformation": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "intendedEffect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "alternatives": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "constraints": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "rejectedDirections": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "direction": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "whyRejected": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "direction",
                        "whyRejected"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "principlePathIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "sourcePathAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "affectedConceptIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "productionBacklinkIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "ownerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  }
                },
                "required": [
                  "projectId",
                  "decision",
                  "rationale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/update": {
      "post": {
        "operationId": "updateCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "decision": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "origin": {
                    "type": "string",
                    "enum": [
                      "derived",
                      "unsupported-original-exploration"
                    ]
                  },
                  "transformation": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "intendedEffect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "alternatives": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "constraints": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "rejectedDirections": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "direction": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "whyRejected": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "direction",
                        "whyRejected"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "principlePathIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "sourcePathAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "affectedConceptIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "productionBacklinkIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/approve": {
      "post": {
        "operationId": "approveCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "role"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/commit": {
      "post": {
        "operationId": "commitCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/revisit": {
      "post": {
        "operationId": "revisitCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/reverse": {
      "post": {
        "operationId": "reverseCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/impact-review": {
      "post": {
        "operationId": "flagCreativeDecisionImpactReview",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reviewTaskId": {
                    "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)$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "changeKind": {
                    "type": "string",
                    "enum": [
                      "source",
                      "claim",
                      "rights",
                      "analysis",
                      "decision",
                      "outcome"
                    ]
                  },
                  "changedRecordId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "reviewTaskId",
                  "reason",
                  "changeKind"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/impact-reviews/{reviewTaskId}/resolve": {
      "post": {
        "operationId": "resolveImpactReview",
        "parameters": [
          {
            "name": "reviewTaskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3d767aee-f962-403a-a05f-1f33e210c7fd"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "keep",
                      "revise",
                      "supersede",
                      "detach",
                      "replace-source",
                      "retire"
                    ]
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "replacementSourceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "required": [
                  "action",
                  "rationale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "review": {
                      "type": "object",
                      "properties": {
                        "reviewTaskId": {
                          "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)$"
                        },
                        "projectId": {
                          "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)$"
                        },
                        "review": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "reviewTaskId",
                        "projectId",
                        "review"
                      ],
                      "additionalProperties": false
                    },
                    "decision": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "ownerUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "status": {
                              "type": "string",
                              "enum": [
                                "proposed",
                                "committed",
                                "revisited",
                                "reversed"
                              ]
                            },
                            "origin": {
                              "type": "string",
                              "enum": [
                                "derived",
                                "unsupported-original-exploration"
                              ]
                            },
                            "decision": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 10000
                            },
                            "rationale": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 10000
                            },
                            "transformation": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 10000
                            },
                            "intendedEffect": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 10000
                            },
                            "alternatives": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "constraints": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "rejectedDirections": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "direction": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "whyRejected": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "direction",
                                  "whyRejected"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "principlePathIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "sourcePathAnchorIds": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "affectedConceptIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "productionBacklinkIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "approvals": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "approvedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "role": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "approvedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "approvedBy",
                                  "role",
                                  "approvedAt"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "openReviewTaskIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "ownerUserId",
                            "status",
                            "decision",
                            "rationale",
                            "alternatives",
                            "constraints",
                            "rejectedDirections",
                            "principlePathIds",
                            "sourcePathAnchorIds",
                            "affectedConceptIds",
                            "productionBacklinkIds",
                            "approvals",
                            "openReviewTaskIds"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "review",
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/impact-reviews": {
      "get": {
        "operationId": "listProjectImpactReviews",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reviews": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reviewTaskId": {
                            "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)$"
                          },
                          "projectId": {
                            "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)$"
                          },
                          "review": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "required": [
                          "reviewTaskId",
                          "projectId",
                          "review"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "reviews"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions": {
      "post": {
        "operationId": "startLiveSession",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "editionId": {
                    "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)$"
                  },
                  "participantUserIds": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "recordingPolicy": {
                    "type": "string",
                    "enum": [
                      "not-recorded",
                      "recorded-with-consent"
                    ]
                  },
                  "recordingConsents": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "party": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "scope": {
                          "type": "string",
                          "enum": [
                            "analysis",
                            "sharing",
                            "teaching",
                            "publication",
                            "model-training"
                          ]
                        },
                        "grantedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "evidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "revokedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "minor": {
                          "default": false,
                          "type": "boolean"
                        },
                        "guardian": {
                          "type": "object",
                          "properties": {
                            "guardianName": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "relationship": {
                              "type": "string",
                              "enum": [
                                "parent",
                                "legal-guardian",
                                "authorized-institution"
                              ]
                            },
                            "authorityEvidenceRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            }
                          },
                          "required": [
                            "guardianName",
                            "relationship",
                            "authorityEvidenceRef"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "party",
                        "scope",
                        "grantedAt",
                        "evidenceRef",
                        "revokedAt"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "editionId",
                  "participantUserIds",
                  "territory",
                  "recordingPolicy"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "session": {
                      "type": "object",
                      "properties": {
                        "sessionId": {
                          "type": "string"
                        },
                        "projectId": {
                          "type": "string"
                        },
                        "editionId": {
                          "type": "string"
                        },
                        "hostUserId": {
                          "type": "string"
                        },
                        "participantUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "playbackGrantId": {
                          "type": "string"
                        },
                        "room": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "editionId": {
                              "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)$"
                            },
                            "hostUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "recordingPolicy": {
                              "type": "string",
                              "enum": [
                                "not-recorded",
                                "recorded-with-consent"
                              ]
                            },
                            "identityMode": {
                              "type": "string",
                              "enum": [
                                "named",
                                "pseudonymous"
                              ]
                            },
                            "lifecycle": {
                              "type": "string",
                              "enum": [
                                "open",
                                "locked",
                                "ended"
                              ]
                            },
                            "playbackGrantId": {
                              "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)$"
                            },
                            "controlGrantedUserIds": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "participants": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "userId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "displayName": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "pseudonym": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "accommodations": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "captions",
                                        "transcript-panel",
                                        "high-contrast",
                                        "larger-text",
                                        "keyboard-only",
                                        "screen-reader",
                                        "reduced-motion",
                                        "audio-description-standard",
                                        "audio-description-extended",
                                        "slower-playback",
                                        "extended-time"
                                      ]
                                    }
                                  },
                                  "detachedByChoice": {
                                    "type": "boolean"
                                  },
                                  "standing": {
                                    "type": "string",
                                    "enum": [
                                      "invited",
                                      "present",
                                      "left",
                                      "removed"
                                    ]
                                  },
                                  "joinedAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "lastSeenAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "leftAtRoomMs": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "playheadMs": {
                                    "anyOf": [
                                      {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "selection": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "startMs": {
                                            "type": "number",
                                            "minimum": 0
                                          },
                                          "endMs": {
                                            "type": "number",
                                            "minimum": 0
                                          }
                                        },
                                        "required": [
                                          "startMs",
                                          "endMs"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "contributionConsent": {
                                    "type": "object",
                                    "properties": {
                                      "granted": {
                                        "type": "boolean"
                                      },
                                      "withdrawnAt": {
                                        "anyOf": [
                                          {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "decidedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "granted",
                                      "withdrawnAt",
                                      "decidedAt"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "muted": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "userId",
                                  "displayName",
                                  "pseudonym",
                                  "accommodations",
                                  "detachedByChoice",
                                  "standing",
                                  "joinedAt",
                                  "lastSeenAt",
                                  "leftAtRoomMs",
                                  "playheadMs",
                                  "selection",
                                  "contributionConsent",
                                  "muted"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "transport": {
                              "type": "object",
                              "properties": {
                                "roomPositionMs": {
                                  "type": "number",
                                  "minimum": 0
                                },
                                "playing": {
                                  "type": "boolean"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "roomPositionMs",
                                "playing",
                                "updatedAt",
                                "updatedByUserId"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "editionId",
                            "hostUserId",
                            "recordingPolicy",
                            "identityMode",
                            "lifecycle",
                            "playbackGrantId",
                            "controlGrantedUserIds",
                            "participants",
                            "transport"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "sessionId",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "participantUserIds",
                        "recordingPolicy",
                        "playbackGrantId",
                        "room"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "session"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/crystallize": {
      "post": {
        "operationId": "crystallizeLiveDiscussion",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "sessionId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "reviewedByUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "statement": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "corpusBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "drawsOnMessageIds": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  }
                },
                "required": [
                  "projectId",
                  "sessionId",
                  "reviewedByUserId",
                  "statement",
                  "context",
                  "corpusBoundary",
                  "drawsOnMessageIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "claim": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "reading": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 20000
                        },
                        "context": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "epistemicStatus": {
                          "type": "string",
                          "enum": [
                            "directly-observed",
                            "model-suggested",
                            "source-documented",
                            "widely-established-craft-convention",
                            "one-interpretation",
                            "contested",
                            "speculative",
                            "insufficient-context"
                          ]
                        },
                        "supportingAnchorIds": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "dissents": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "author": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "reading": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "supportingAnchorIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "author",
                              "reading",
                              "supportingAnchorIds",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "corpusBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "supportStrength": {
                          "type": "string",
                          "enum": [
                            "single-source",
                            "multiple-scenes",
                            "cross-work",
                            "corpus-wide"
                          ]
                        },
                        "reviewerAgreement": {
                          "type": "object",
                          "properties": {
                            "agree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "disagree": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "abstain": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "agree",
                            "disagree",
                            "abstain"
                          ],
                          "additionalProperties": false
                        },
                        "culturalContextBounds": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "reviewDecisionIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "reading",
                        "context",
                        "author",
                        "epistemicStatus",
                        "supportingAnchorIds",
                        "counterevidenceAnchorIds",
                        "dissents",
                        "corpusBoundary",
                        "limitations",
                        "reviewState",
                        "reviewDecisionIds"
                      ],
                      "additionalProperties": false
                    },
                    "crystallized": {
                      "type": "object",
                      "properties": {
                        "claimId": {
                          "type": "string"
                        },
                        "sessionId": {
                          "type": "string"
                        },
                        "crystallizedByUserId": {
                          "type": "string"
                        },
                        "statement": {
                          "type": "string"
                        },
                        "drawsOnMessageIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "contributors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "participantId": {
                                "type": "string"
                              },
                              "messageIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "participantId",
                              "messageIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "dissents": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "participantId": {
                                "type": "string"
                              },
                              "messageId": {
                                "type": "string"
                              },
                              "statement": {
                                "type": "string"
                              },
                              "anchorIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "participantId",
                              "messageId",
                              "statement",
                              "anchorIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "anchorIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "contributionsWithheld": {
                          "type": "boolean"
                        },
                        "reviewedByUserId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "claimId",
                        "sessionId",
                        "crystallizedByUserId",
                        "statement",
                        "drawsOnMessageIds",
                        "contributors",
                        "dissents",
                        "anchorIds",
                        "contributionsWithheld"
                      ],
                      "additionalProperties": false
                    },
                    "transcript": {
                      "type": "object",
                      "properties": {
                        "messageCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "moderatedOutCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "messageCount",
                        "moderatedOutCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "claim",
                    "crystallized",
                    "transcript"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/live-sessions": {
      "get": {
        "operationId": "listLiveRooms",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "rooms": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "roomId": {
                            "type": "string"
                          },
                          "editionId": {
                            "type": "string"
                          },
                          "hostUserId": {
                            "type": "string"
                          },
                          "lifecycle": {
                            "type": "string",
                            "enum": [
                              "open",
                              "locked",
                              "ended"
                            ]
                          },
                          "recordingPolicy": {
                            "type": "string",
                            "enum": [
                              "not-recorded",
                              "recorded-with-consent"
                            ]
                          },
                          "identityMode": {
                            "type": "string",
                            "enum": [
                              "named",
                              "pseudonymous"
                            ]
                          },
                          "roomPositionMs": {
                            "type": "number"
                          },
                          "presentCount": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "rosterCount": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "yourStanding": {
                            "type": "string",
                            "enum": [
                              "invited",
                              "present",
                              "left",
                              "removed"
                            ]
                          }
                        },
                        "required": [
                          "roomId",
                          "editionId",
                          "hostUserId",
                          "lifecycle",
                          "recordingPolicy",
                          "identityMode",
                          "roomPositionMs",
                          "presentCount",
                          "rosterCount",
                          "yourStanding"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "rooms"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}": {
      "get": {
        "operationId": "readLiveRoom",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    },
                    "sync": {
                      "type": "object",
                      "properties": {
                        "participants": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "synchronized",
                                  "detached-by-accommodation",
                                  "detached-by-choice"
                                ]
                              },
                              "timelineAffecting": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "roomVisibleNote": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "userId",
                              "standing",
                              "timelineAffecting",
                              "roomVisibleNote"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "synchronizedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "detachedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "wholeRoomCanWait": {
                          "type": "boolean"
                        },
                        "hostNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "participants",
                        "synchronizedUserIds",
                        "detachedUserIds",
                        "wholeRoomCanWait",
                        "hostNote"
                      ],
                      "additionalProperties": false
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "roomId": {
                            "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)$"
                          },
                          "projectId": {
                            "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)$"
                          },
                          "authorId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "stance": {
                            "type": "string",
                            "enum": [
                              "observation",
                              "support",
                              "dissent",
                              "question"
                            ]
                          },
                          "body": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "anchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "atRoomPositionMs": {
                            "type": "number",
                            "minimum": 0
                          },
                          "saidAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "moderation": {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "enum": [
                                  "visible",
                                  "flagged",
                                  "hidden",
                                  "removed"
                                ]
                              },
                              "flags": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "type": "string",
                                      "enum": [
                                        "harassment",
                                        "identity-targeting",
                                        "abusive-comment",
                                        "unsafe-classroom"
                                      ]
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 400
                                    },
                                    "match": {
                                      "type": "string",
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "reason",
                                    "match"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "decisions": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "category": {
                                      "type": "string",
                                      "enum": [
                                        "harassment",
                                        "identity-targeting",
                                        "abusive-comment",
                                        "unsafe-classroom"
                                      ]
                                    },
                                    "action": {
                                      "type": "string",
                                      "enum": [
                                        "flag-for-review",
                                        "hide",
                                        "remove",
                                        "warn-author",
                                        "mute-participant",
                                        "remove-participant",
                                        "lock-thread",
                                        "lock-session",
                                        "escalate"
                                      ]
                                    },
                                    "moderatorUserId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "rationale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    },
                                    "decidedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "escalated": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "category",
                                    "action",
                                    "moderatorUserId",
                                    "rationale",
                                    "decidedAt",
                                    "escalated"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "state",
                              "flags",
                              "decisions"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "roomId",
                          "projectId",
                          "authorId",
                          "stance",
                          "body",
                          "anchorIds",
                          "atRoomPositionMs",
                          "saidAt",
                          "moderation"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "withheldMessageCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "room",
                    "sync",
                    "messages",
                    "withheldMessageCount"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/join": {
      "post": {
        "operationId": "joinLiveRoom",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "accommodations": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "captions",
                        "transcript-panel",
                        "high-contrast",
                        "larger-text",
                        "keyboard-only",
                        "screen-reader",
                        "reduced-motion",
                        "audio-description-standard",
                        "audio-description-extended",
                        "slower-playback",
                        "extended-time"
                      ]
                    }
                  },
                  "detachedByChoice": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    },
                    "rejoin": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "userId": {
                              "type": "string"
                            },
                            "resumeAtMs": {
                              "type": "number"
                            },
                            "missed": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "fromMs": {
                                      "type": "number"
                                    },
                                    "toMs": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "fromMs",
                                    "toMs"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "note": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "userId",
                            "resumeAtMs",
                            "missed",
                            "note"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "sync": {
                      "type": "object",
                      "properties": {
                        "participants": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "synchronized",
                                  "detached-by-accommodation",
                                  "detached-by-choice"
                                ]
                              },
                              "timelineAffecting": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "roomVisibleNote": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "userId",
                              "standing",
                              "timelineAffecting",
                              "roomVisibleNote"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "synchronizedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "detachedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "wholeRoomCanWait": {
                          "type": "boolean"
                        },
                        "hostNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "participants",
                        "synchronizedUserIds",
                        "detachedUserIds",
                        "wholeRoomCanWait",
                        "hostNote"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "room",
                    "rejoin",
                    "sync"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/leave": {
      "post": {
        "operationId": "leaveLiveRoom",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "room"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/presence": {
      "get": {
        "operationId": "readLiveRoomPresence",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "roomId": {
                      "type": "string"
                    },
                    "identityMode": {
                      "type": "string",
                      "enum": [
                        "named",
                        "pseudonymous"
                      ]
                    },
                    "roomPositionMs": {
                      "type": "number"
                    },
                    "presences": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "participantId": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "sessionId": {
                            "type": "string"
                          },
                          "lastSeenAt": {
                            "type": "string"
                          },
                          "sourceName": {
                            "type": "string"
                          },
                          "playheadMs": {
                            "type": "number"
                          },
                          "selection": {
                            "type": "object",
                            "properties": {
                              "startMs": {
                                "type": "number"
                              },
                              "endMs": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "startMs",
                              "endMs"
                            ],
                            "additionalProperties": false
                          },
                          "learnerContentExcerpt": {
                            "type": "string"
                          },
                          "withheld": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "enum": [
                                    "source-name",
                                    "playhead",
                                    "selection",
                                    "learner-content"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-authorized-for-source",
                                    "not-authorized-for-learner"
                                  ]
                                }
                              },
                              "required": [
                                "field",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "participantId",
                          "label",
                          "sessionId",
                          "lastSeenAt",
                          "withheld"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "sync": {
                      "type": "object",
                      "properties": {
                        "participants": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "synchronized",
                                  "detached-by-accommodation",
                                  "detached-by-choice"
                                ]
                              },
                              "timelineAffecting": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "roomVisibleNote": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "userId",
                              "standing",
                              "timelineAffecting",
                              "roomVisibleNote"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "synchronizedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "detachedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "wholeRoomCanWait": {
                          "type": "boolean"
                        },
                        "hostNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "participants",
                        "synchronizedUserIds",
                        "detachedUserIds",
                        "wholeRoomCanWait",
                        "hostNote"
                      ],
                      "additionalProperties": false
                    },
                    "sourceWithheld": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "roomId",
                    "identityMode",
                    "roomPositionMs",
                    "presences",
                    "sync",
                    "sourceWithheld"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/settings": {
      "post": {
        "operationId": "setOwnRoomSettings",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "accommodations": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "captions",
                        "transcript-panel",
                        "high-contrast",
                        "larger-text",
                        "keyboard-only",
                        "screen-reader",
                        "reduced-motion",
                        "audio-description-standard",
                        "audio-description-extended",
                        "slower-playback",
                        "extended-time"
                      ]
                    }
                  },
                  "detachedByChoice": {
                    "type": "boolean"
                  },
                  "playheadMs": {
                    "type": "number",
                    "minimum": 0
                  },
                  "selection": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "startMs": {
                            "type": "number",
                            "minimum": 0
                          },
                          "endMs": {
                            "type": "number",
                            "minimum": 0
                          }
                        },
                        "required": [
                          "startMs",
                          "endMs"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "accommodations",
                  "detachedByChoice"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    },
                    "sync": {
                      "type": "object",
                      "properties": {
                        "participants": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "synchronized",
                                  "detached-by-accommodation",
                                  "detached-by-choice"
                                ]
                              },
                              "timelineAffecting": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "roomVisibleNote": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "userId",
                              "standing",
                              "timelineAffecting",
                              "roomVisibleNote"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "synchronizedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "detachedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "wholeRoomCanWait": {
                          "type": "boolean"
                        },
                        "hostNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "participants",
                        "synchronizedUserIds",
                        "detachedUserIds",
                        "wholeRoomCanWait",
                        "hostNote"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "room",
                    "sync"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/transport": {
      "post": {
        "operationId": "driveRoomTransport",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "toPositionMs": {
                    "type": "number",
                    "minimum": 0
                  },
                  "playing": {
                    "type": "boolean"
                  },
                  "applyViewToParticipants": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "userId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "accommodations": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "captions",
                              "transcript-panel",
                              "high-contrast",
                              "larger-text",
                              "keyboard-only",
                              "screen-reader",
                              "reduced-motion",
                              "audio-description-standard",
                              "audio-description-extended",
                              "slower-playback",
                              "extended-time"
                            ]
                          }
                        }
                      },
                      "required": [
                        "userId",
                        "accommodations"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "territory",
                  "toPositionMs",
                  "playing"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    },
                    "sync": {
                      "type": "object",
                      "properties": {
                        "participants": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "synchronized",
                                  "detached-by-accommodation",
                                  "detached-by-choice"
                                ]
                              },
                              "timelineAffecting": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "roomVisibleNote": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "userId",
                              "standing",
                              "timelineAffecting",
                              "roomVisibleNote"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "synchronizedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "detachedUserIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "wholeRoomCanWait": {
                          "type": "boolean"
                        },
                        "hostNote": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "participants",
                        "synchronizedUserIds",
                        "detachedUserIds",
                        "wholeRoomCanWait",
                        "hostNote"
                      ],
                      "additionalProperties": false
                    },
                    "movedUserIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unmovedUserIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "room",
                    "sync",
                    "movedUserIds",
                    "unmovedUserIds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/transport-control": {
      "post": {
        "operationId": "setRoomTransportControl",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "targetUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "granted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "targetUserId",
                  "granted"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "room"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/drift": {
      "post": {
        "operationId": "reportRoomDrift",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "samples": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "userId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reportedPositionMs": {
                          "type": "number",
                          "minimum": 0
                        },
                        "roundTripMs": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 60000
                        }
                      },
                      "required": [
                        "userId",
                        "reportedPositionMs"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "samples"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "readings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string"
                          },
                          "standing": {
                            "type": "string",
                            "enum": [
                              "in-step",
                              "behind",
                              "ahead",
                              "unknown"
                            ]
                          },
                          "driftMs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "uncertaintyMs": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "userId",
                          "standing",
                          "driftMs",
                          "uncertaintyMs",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "roomInStep": {
                      "type": "boolean"
                    },
                    "unmeasuredUserIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "roomPositionMs": {
                      "type": "number"
                    },
                    "unsampledUserIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "readings",
                    "roomInStep",
                    "unmeasuredUserIds",
                    "roomPositionMs",
                    "unsampledUserIds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/messages": {
      "post": {
        "operationId": "postRoomMessage",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "stance": {
                    "type": "string",
                    "enum": [
                      "observation",
                      "support",
                      "dissent",
                      "question"
                    ]
                  },
                  "body": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "anchorIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "stance",
                  "body",
                  "anchorIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "roomId": {
                          "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)$"
                        },
                        "projectId": {
                          "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)$"
                        },
                        "authorId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "stance": {
                          "type": "string",
                          "enum": [
                            "observation",
                            "support",
                            "dissent",
                            "question"
                          ]
                        },
                        "body": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "atRoomPositionMs": {
                          "type": "number",
                          "minimum": 0
                        },
                        "saidAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "visible",
                                "flagged",
                                "hidden",
                                "removed"
                              ]
                            },
                            "flags": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "category": {
                                    "type": "string",
                                    "enum": [
                                      "harassment",
                                      "identity-targeting",
                                      "abusive-comment",
                                      "unsafe-classroom"
                                    ]
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  },
                                  "match": {
                                    "type": "string",
                                    "maxLength": 1000
                                  }
                                },
                                "required": [
                                  "category",
                                  "reason",
                                  "match"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "decisions": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "category": {
                                    "type": "string",
                                    "enum": [
                                      "harassment",
                                      "identity-targeting",
                                      "abusive-comment",
                                      "unsafe-classroom"
                                    ]
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "flag-for-review",
                                      "hide",
                                      "remove",
                                      "warn-author",
                                      "mute-participant",
                                      "remove-participant",
                                      "lock-thread",
                                      "lock-session",
                                      "escalate"
                                    ]
                                  },
                                  "moderatorUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "rationale": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "escalated": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "category",
                                  "action",
                                  "moderatorUserId",
                                  "rationale",
                                  "decidedAt",
                                  "escalated"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "state",
                            "flags",
                            "decisions"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "roomId",
                        "projectId",
                        "authorId",
                        "stance",
                        "body",
                        "anchorIds",
                        "atRoomPositionMs",
                        "saidAt",
                        "moderation"
                      ],
                      "additionalProperties": false
                    },
                    "screen": {
                      "type": "object",
                      "properties": {
                        "flags": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "category": {
                                "type": "string",
                                "enum": [
                                  "harassment",
                                  "identity-targeting",
                                  "abusive-comment",
                                  "unsafe-classroom"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "match": {
                                "type": "string",
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "category",
                              "reason",
                              "match"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "needsReview": {
                          "type": "boolean"
                        },
                        "recommendedAction": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "flag-for-review",
                                "hide",
                                "remove",
                                "warn-author",
                                "mute-participant",
                                "remove-participant",
                                "lock-thread",
                                "lock-session",
                                "escalate"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "flags",
                        "needsReview",
                        "recommendedAction"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "record",
                    "screen"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/moderation": {
      "post": {
        "operationId": "moderateLiveRoom",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "messageId": {
                    "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)$"
                  },
                  "targetUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "category": {
                    "type": "string",
                    "enum": [
                      "harassment",
                      "identity-targeting",
                      "abusive-comment",
                      "unsafe-classroom"
                    ]
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "flag-for-review",
                      "hide",
                      "remove",
                      "warn-author",
                      "mute-participant",
                      "remove-participant",
                      "lock-thread",
                      "lock-session",
                      "escalate"
                    ]
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "category",
                  "action",
                  "rationale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "targetId": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string",
                          "enum": [
                            "harassment",
                            "identity-targeting",
                            "abusive-comment",
                            "unsafe-classroom"
                          ]
                        },
                        "action": {
                          "type": "string",
                          "enum": [
                            "flag-for-review",
                            "hide",
                            "remove",
                            "warn-author",
                            "mute-participant",
                            "remove-participant",
                            "lock-thread",
                            "lock-session",
                            "escalate"
                          ]
                        },
                        "moderatorUserId": {
                          "type": "string"
                        },
                        "rationale": {
                          "type": "string"
                        },
                        "decidedAt": {
                          "type": "string"
                        },
                        "escalated": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "targetId",
                        "category",
                        "action",
                        "moderatorUserId",
                        "rationale",
                        "decidedAt",
                        "escalated"
                      ],
                      "additionalProperties": false
                    },
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    },
                    "message": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "roomId": {
                              "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)$"
                            },
                            "projectId": {
                              "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)$"
                            },
                            "authorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "stance": {
                              "type": "string",
                              "enum": [
                                "observation",
                                "support",
                                "dissent",
                                "question"
                              ]
                            },
                            "body": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 10000
                            },
                            "anchorIds": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "atRoomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "saidAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "moderation": {
                              "type": "object",
                              "properties": {
                                "state": {
                                  "type": "string",
                                  "enum": [
                                    "visible",
                                    "flagged",
                                    "hidden",
                                    "removed"
                                  ]
                                },
                                "flags": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "category": {
                                        "type": "string",
                                        "enum": [
                                          "harassment",
                                          "identity-targeting",
                                          "abusive-comment",
                                          "unsafe-classroom"
                                        ]
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 400
                                      },
                                      "match": {
                                        "type": "string",
                                        "maxLength": 1000
                                      }
                                    },
                                    "required": [
                                      "category",
                                      "reason",
                                      "match"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "decisions": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "category": {
                                        "type": "string",
                                        "enum": [
                                          "harassment",
                                          "identity-targeting",
                                          "abusive-comment",
                                          "unsafe-classroom"
                                        ]
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "flag-for-review",
                                          "hide",
                                          "remove",
                                          "warn-author",
                                          "mute-participant",
                                          "remove-participant",
                                          "lock-thread",
                                          "lock-session",
                                          "escalate"
                                        ]
                                      },
                                      "moderatorUserId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "rationale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                      },
                                      "decidedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "escalated": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "category",
                                      "action",
                                      "moderatorUserId",
                                      "rationale",
                                      "decidedAt",
                                      "escalated"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "state",
                                "flags",
                                "decisions"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "roomId",
                            "projectId",
                            "authorId",
                            "stance",
                            "body",
                            "anchorIds",
                            "atRoomPositionMs",
                            "saidAt",
                            "moderation"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "decision",
                    "room",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/live-sessions/{sessionId}/consent": {
      "post": {
        "operationId": "setRoomContributionConsent",
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "fa496b11-e506-4da2-aa2c-2e6e4abae5b5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "granted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "granted"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "room": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "hostUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "recordingPolicy": {
                          "type": "string",
                          "enum": [
                            "not-recorded",
                            "recorded-with-consent"
                          ]
                        },
                        "identityMode": {
                          "type": "string",
                          "enum": [
                            "named",
                            "pseudonymous"
                          ]
                        },
                        "lifecycle": {
                          "type": "string",
                          "enum": [
                            "open",
                            "locked",
                            "ended"
                          ]
                        },
                        "playbackGrantId": {
                          "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)$"
                        },
                        "controlGrantedUserIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "participants": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pseudonym": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "captions",
                                    "transcript-panel",
                                    "high-contrast",
                                    "larger-text",
                                    "keyboard-only",
                                    "screen-reader",
                                    "reduced-motion",
                                    "audio-description-standard",
                                    "audio-description-extended",
                                    "slower-playback",
                                    "extended-time"
                                  ]
                                }
                              },
                              "detachedByChoice": {
                                "type": "boolean"
                              },
                              "standing": {
                                "type": "string",
                                "enum": [
                                  "invited",
                                  "present",
                                  "left",
                                  "removed"
                                ]
                              },
                              "joinedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "lastSeenAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "leftAtRoomMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "playheadMs": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "selection": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "contributionConsent": {
                                "type": "object",
                                "properties": {
                                  "granted": {
                                    "type": "boolean"
                                  },
                                  "withdrawnAt": {
                                    "anyOf": [
                                      {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "decidedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "granted",
                                  "withdrawnAt",
                                  "decidedAt"
                                ],
                                "additionalProperties": false
                              },
                              "muted": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "userId",
                              "displayName",
                              "pseudonym",
                              "accommodations",
                              "detachedByChoice",
                              "standing",
                              "joinedAt",
                              "lastSeenAt",
                              "leftAtRoomMs",
                              "playheadMs",
                              "selection",
                              "contributionConsent",
                              "muted"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "transport": {
                          "type": "object",
                          "properties": {
                            "roomPositionMs": {
                              "type": "number",
                              "minimum": 0
                            },
                            "playing": {
                              "type": "boolean"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "roomPositionMs",
                            "playing",
                            "updatedAt",
                            "updatedByUserId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "hostUserId",
                        "recordingPolicy",
                        "identityMode",
                        "lifecycle",
                        "playbackGrantId",
                        "controlGrantedUserIds",
                        "participants",
                        "transport"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "room"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/game-study/templates": {
      "get": {
        "operationId": "listGameStudyTemplates",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "templates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "subject": {
                            "type": "string",
                            "enum": [
                              "mechanic",
                              "level",
                              "ui",
                              "camera",
                              "animation",
                              "audio",
                              "feedback",
                              "performance"
                            ]
                          },
                          "tier": {
                            "type": "string",
                            "const": "video-only"
                          },
                          "prompt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "fields": {
                            "minItems": 1,
                            "maxItems": 60,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "observation",
                                    "measurement",
                                    "interpretation"
                                  ]
                                },
                                "basis": {
                                  "type": "string",
                                  "enum": [
                                    "visual",
                                    "audio",
                                    "ui",
                                    "apparent-action",
                                    "timing",
                                    "level-flow",
                                    "manual-mechanic",
                                    "input-telemetry",
                                    "state-telemetry",
                                    "camera-telemetry",
                                    "animation-telemetry",
                                    "ai-telemetry",
                                    "combat-telemetry",
                                    "economy-telemetry",
                                    "network-telemetry",
                                    "performance-telemetry",
                                    "asset-link",
                                    "level-link",
                                    "animation-graph-link",
                                    "behavior-tree-link",
                                    "data-table-link",
                                    "source-project-link",
                                    "version-link"
                                  ]
                                },
                                "prompt": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "required": {
                                  "type": "boolean"
                                },
                                "vocabulary": {
                                  "minItems": 1,
                                  "maxItems": 60,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "allowsOther": {
                                  "type": "boolean"
                                },
                                "unit": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 40
                                }
                              },
                              "required": [
                                "name",
                                "kind",
                                "basis",
                                "prompt",
                                "required"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "rubricHints": {
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "limits": {
                            "minItems": 1,
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "claim": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                },
                                "prohibition": {
                                  "type": "string",
                                  "enum": [
                                    "hidden-state",
                                    "exact-input"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "claim",
                                "prohibition",
                                "note"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "tierLimitations": {
                            "type": "object",
                            "properties": {
                              "tier": {
                                "type": "string",
                                "enum": [
                                  "video-only",
                                  "instrumented-session",
                                  "creator-owned"
                                ]
                              },
                              "code": {
                                "type": "string",
                                "enum": [
                                  "A",
                                  "B",
                                  "C"
                                ]
                              },
                              "unavailableAnalysisKinds": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "visual",
                                    "audio",
                                    "ui",
                                    "apparent-action",
                                    "timing",
                                    "level-flow",
                                    "manual-mechanic",
                                    "input-telemetry",
                                    "state-telemetry",
                                    "camera-telemetry",
                                    "animation-telemetry",
                                    "ai-telemetry",
                                    "combat-telemetry",
                                    "economy-telemetry",
                                    "network-telemetry",
                                    "performance-telemetry",
                                    "asset-link",
                                    "level-link",
                                    "animation-graph-link",
                                    "behavior-tree-link",
                                    "data-table-link",
                                    "source-project-link",
                                    "version-link"
                                  ]
                                }
                              },
                              "prohibitedClaimKinds": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "hidden-state",
                                    "exact-input"
                                  ]
                                }
                              },
                              "captureGaps": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "clockUncertainty": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "sourceTierLimitations": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              }
                            },
                            "required": [
                              "tier",
                              "code",
                              "unavailableAnalysisKinds",
                              "prohibitedClaimKinds",
                              "captureGaps",
                              "clockUncertainty",
                              "sourceTierLimitations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "subject",
                          "tier",
                          "prompt",
                          "fields",
                          "rubricHints",
                          "limits",
                          "tierLimitations"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "templates"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/video-only-game-records": {
      "post": {
        "operationId": "recordVideoOnlyGameStudy",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "anchorId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "payload": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "template-note"
                          },
                          "subject": {
                            "type": "string",
                            "enum": [
                              "mechanic",
                              "level",
                              "ui",
                              "camera",
                              "animation",
                              "audio",
                              "feedback",
                              "performance"
                            ]
                          },
                          "fields": {
                            "minItems": 1,
                            "maxItems": 60,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "value": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 4000
                                },
                                "otherReason": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "uncertainty": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "limitations": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "evidenceAnchorIds": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "kind",
                          "subject",
                          "fields"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "hud-detection"
                          },
                          "field": {
                            "type": "string",
                            "enum": [
                              "health",
                              "resource",
                              "ammunition",
                              "cooldown",
                              "score",
                              "damage-number",
                              "objective-text"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "visibleFrames": {
                            "type": "object",
                            "properties": {
                              "startFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "endFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "startFrame",
                              "endFrame"
                            ],
                            "additionalProperties": false
                          },
                          "detector": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "ocr",
                                  "template-match"
                                ]
                              },
                              "model": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "version": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "kind",
                              "model",
                              "version"
                            ],
                            "additionalProperties": false
                          },
                          "confidence": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "kind",
                          "field",
                          "value",
                          "visibleFrames",
                          "detector",
                          "confidence"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "input-overlay-reading"
                          },
                          "inputLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "indicatorState": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "occluded",
                              "ambiguous",
                              "dropped",
                              "missing"
                            ]
                          },
                          "overlayPresent": {
                            "type": "boolean"
                          },
                          "assertedAsFact": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "kind",
                          "inputLabel",
                          "indicatorState",
                          "overlayPresent",
                          "assertedAsFact"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "community-fact"
                          },
                          "factKind": {
                            "type": "string",
                            "enum": [
                              "frame-data-table",
                              "patch-notes",
                              "mechanics-wiki",
                              "speedrun-data"
                            ]
                          },
                          "statement": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4000
                          },
                          "citation": {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "locator": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "retrievedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "title",
                              "locator"
                            ],
                            "additionalProperties": false
                          },
                          "contentVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "authorship": {
                            "type": "object",
                            "properties": {
                              "publisher": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "author": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "publisher"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "kind",
                          "factKind",
                          "statement",
                          "citation",
                          "contentVersion",
                          "authorship"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "anchorId",
                  "territory",
                  "payload"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "template-note"
                            },
                            "subject": {
                              "type": "string",
                              "enum": [
                                "mechanic",
                                "level",
                                "ui",
                                "camera",
                                "animation",
                                "audio",
                                "feedback",
                                "performance"
                              ]
                            },
                            "fields": {
                              "minItems": 1,
                              "maxItems": 60,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 4000
                                  },
                                  "otherReason": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "limitations": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "evidenceAnchorIds": {
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "subject",
                            "fields"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "hud-detection"
                            },
                            "field": {
                              "type": "string",
                              "enum": [
                                "health",
                                "resource",
                                "ammunition",
                                "cooldown",
                                "score",
                                "damage-number",
                                "objective-text"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "visibleFrames": {
                              "type": "object",
                              "properties": {
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            "detector": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "ocr",
                                    "template-match"
                                  ]
                                },
                                "model": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "kind",
                                "model",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "detectionLabel": {
                              "type": "string",
                              "const": "video-only detection"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "field",
                            "value",
                            "visibleFrames",
                            "detector",
                            "confidence",
                            "reviewState",
                            "detectionLabel"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "input-overlay-reading"
                            },
                            "inputLabel": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "indicatorState": {
                              "type": "string",
                              "enum": [
                                "visible",
                                "occluded",
                                "ambiguous",
                                "dropped",
                                "missing"
                              ]
                            },
                            "overlayPresent": {
                              "type": "boolean"
                            },
                            "assertedAsFact": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "inputLabel",
                            "indicatorState",
                            "overlayPresent",
                            "assertedAsFact"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "community-fact"
                            },
                            "factKind": {
                              "type": "string",
                              "enum": [
                                "frame-data-table",
                                "patch-notes",
                                "mechanics-wiki",
                                "speedrun-data"
                              ]
                            },
                            "statement": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            },
                            "citation": {
                              "type": "object",
                              "properties": {
                                "title": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "locator": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "retrievedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "title",
                                "locator"
                              ],
                              "additionalProperties": false
                            },
                            "contentVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "authorship": {
                              "type": "object",
                              "properties": {
                                "publisher": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "author": {
                                  "type": "string",
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "publisher"
                              ],
                              "additionalProperties": false
                            },
                            "provenanceClass": {
                              "type": "string",
                              "const": "community-fact"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "factKind",
                            "statement",
                            "citation",
                            "contentVersion",
                            "authorship",
                            "provenanceClass"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "record"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listVideoOnlyGameRecords",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "kind",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "projectId": {
                                "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)$"
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "groundingTier": {
                                "type": "string",
                                "enum": [
                                  "video-only",
                                  "instrumented-session",
                                  "creator-owned"
                                ]
                              },
                              "recordedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "kind": {
                                "type": "string",
                                "const": "template-note"
                              },
                              "subject": {
                                "type": "string",
                                "enum": [
                                  "mechanic",
                                  "level",
                                  "ui",
                                  "camera",
                                  "animation",
                                  "audio",
                                  "feedback",
                                  "performance"
                                ]
                              },
                              "fields": {
                                "minItems": 1,
                                "maxItems": 60,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "value": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 4000
                                    },
                                    "otherReason": {
                                      "type": "string",
                                      "maxLength": 1000
                                    },
                                    "uncertainty": {
                                      "type": "string",
                                      "maxLength": 1000
                                    },
                                    "limitations": {
                                      "maxItems": 20,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1000
                                      }
                                    },
                                    "evidenceAnchorIds": {
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "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)$"
                                      }
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "value"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "projectId",
                              "anchorId",
                              "groundingTier",
                              "recordedByUserId",
                              "kind",
                              "subject",
                              "fields"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "projectId": {
                                "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)$"
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "groundingTier": {
                                "type": "string",
                                "enum": [
                                  "video-only",
                                  "instrumented-session",
                                  "creator-owned"
                                ]
                              },
                              "recordedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "kind": {
                                "type": "string",
                                "const": "hud-detection"
                              },
                              "field": {
                                "type": "string",
                                "enum": [
                                  "health",
                                  "resource",
                                  "ammunition",
                                  "cooldown",
                                  "score",
                                  "damage-number",
                                  "objective-text"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "visibleFrames": {
                                "type": "object",
                                "properties": {
                                  "startFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "endFrame": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "startFrame",
                                  "endFrame"
                                ],
                                "additionalProperties": false
                              },
                              "detector": {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "ocr",
                                      "template-match"
                                    ]
                                  },
                                  "model": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "version": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                },
                                "required": [
                                  "kind",
                                  "model",
                                  "version"
                                ],
                                "additionalProperties": false
                              },
                              "confidence": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "reviewState": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "detectionLabel": {
                                "type": "string",
                                "const": "video-only detection"
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "projectId",
                              "anchorId",
                              "groundingTier",
                              "recordedByUserId",
                              "kind",
                              "field",
                              "value",
                              "visibleFrames",
                              "detector",
                              "confidence",
                              "reviewState",
                              "detectionLabel"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "projectId": {
                                "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)$"
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "groundingTier": {
                                "type": "string",
                                "enum": [
                                  "video-only",
                                  "instrumented-session",
                                  "creator-owned"
                                ]
                              },
                              "recordedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "kind": {
                                "type": "string",
                                "const": "input-overlay-reading"
                              },
                              "inputLabel": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "indicatorState": {
                                "type": "string",
                                "enum": [
                                  "visible",
                                  "occluded",
                                  "ambiguous",
                                  "dropped",
                                  "missing"
                                ]
                              },
                              "overlayPresent": {
                                "type": "boolean"
                              },
                              "assertedAsFact": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "projectId",
                              "anchorId",
                              "groundingTier",
                              "recordedByUserId",
                              "kind",
                              "inputLabel",
                              "indicatorState",
                              "overlayPresent",
                              "assertedAsFact"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "projectId": {
                                "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)$"
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "groundingTier": {
                                "type": "string",
                                "enum": [
                                  "video-only",
                                  "instrumented-session",
                                  "creator-owned"
                                ]
                              },
                              "recordedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "kind": {
                                "type": "string",
                                "const": "community-fact"
                              },
                              "factKind": {
                                "type": "string",
                                "enum": [
                                  "frame-data-table",
                                  "patch-notes",
                                  "mechanics-wiki",
                                  "speedrun-data"
                                ]
                              },
                              "statement": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              },
                              "citation": {
                                "type": "object",
                                "properties": {
                                  "title": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  },
                                  "locator": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "retrievedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "title",
                                  "locator"
                                ],
                                "additionalProperties": false
                              },
                              "contentVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "authorship": {
                                "type": "object",
                                "properties": {
                                  "publisher": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "author": {
                                    "type": "string",
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "publisher"
                                ],
                                "additionalProperties": false
                              },
                              "provenanceClass": {
                                "type": "string",
                                "const": "community-fact"
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "projectId",
                              "anchorId",
                              "groundingTier",
                              "recordedByUserId",
                              "kind",
                              "factKind",
                              "statement",
                              "citation",
                              "contentVersion",
                              "authorship",
                              "provenanceClass"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "kind": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "template-note",
                            "hud-detection",
                            "input-overlay-reading",
                            "community-fact"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "tierLimitations": {
                      "type": "object",
                      "properties": {
                        "tier": {
                          "type": "string",
                          "enum": [
                            "video-only",
                            "instrumented-session",
                            "creator-owned"
                          ]
                        },
                        "code": {
                          "type": "string",
                          "enum": [
                            "A",
                            "B",
                            "C"
                          ]
                        },
                        "unavailableAnalysisKinds": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "visual",
                              "audio",
                              "ui",
                              "apparent-action",
                              "timing",
                              "level-flow",
                              "manual-mechanic",
                              "input-telemetry",
                              "state-telemetry",
                              "camera-telemetry",
                              "animation-telemetry",
                              "ai-telemetry",
                              "combat-telemetry",
                              "economy-telemetry",
                              "network-telemetry",
                              "performance-telemetry",
                              "asset-link",
                              "level-link",
                              "animation-graph-link",
                              "behavior-tree-link",
                              "data-table-link",
                              "source-project-link",
                              "version-link"
                            ]
                          }
                        },
                        "prohibitedClaimKinds": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "hidden-state",
                              "exact-input"
                            ]
                          }
                        },
                        "captureGaps": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "clockUncertainty": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "sourceTierLimitations": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        }
                      },
                      "required": [
                        "tier",
                        "code",
                        "unavailableAnalysisKinds",
                        "prohibitedClaimKinds",
                        "captureGaps",
                        "clockUncertainty",
                        "sourceTierLimitations"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "records",
                    "kind",
                    "tierLimitations"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/video-only-game-records/{recordId}/revision": {
      "post": {
        "operationId": "reviseVideoOnlyGameStudy",
        "parameters": [
          {
            "name": "recordId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "161c7962-7555-4d0e-acc0-53876df51af9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "changeReason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "payload": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "template-note"
                          },
                          "subject": {
                            "type": "string",
                            "enum": [
                              "mechanic",
                              "level",
                              "ui",
                              "camera",
                              "animation",
                              "audio",
                              "feedback",
                              "performance"
                            ]
                          },
                          "fields": {
                            "minItems": 1,
                            "maxItems": 60,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "value": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 4000
                                },
                                "otherReason": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "uncertainty": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "limitations": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1000
                                  }
                                },
                                "evidenceAnchorIds": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "kind",
                          "subject",
                          "fields"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "hud-detection"
                          },
                          "field": {
                            "type": "string",
                            "enum": [
                              "health",
                              "resource",
                              "ammunition",
                              "cooldown",
                              "score",
                              "damage-number",
                              "objective-text"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "visibleFrames": {
                            "type": "object",
                            "properties": {
                              "startFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "endFrame": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "startFrame",
                              "endFrame"
                            ],
                            "additionalProperties": false
                          },
                          "detector": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "ocr",
                                  "template-match"
                                ]
                              },
                              "model": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "version": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "kind",
                              "model",
                              "version"
                            ],
                            "additionalProperties": false
                          },
                          "confidence": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "kind",
                          "field",
                          "value",
                          "visibleFrames",
                          "detector",
                          "confidence"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "input-overlay-reading"
                          },
                          "inputLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "indicatorState": {
                            "type": "string",
                            "enum": [
                              "visible",
                              "occluded",
                              "ambiguous",
                              "dropped",
                              "missing"
                            ]
                          },
                          "overlayPresent": {
                            "type": "boolean"
                          },
                          "assertedAsFact": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "kind",
                          "inputLabel",
                          "indicatorState",
                          "overlayPresent",
                          "assertedAsFact"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "community-fact"
                          },
                          "factKind": {
                            "type": "string",
                            "enum": [
                              "frame-data-table",
                              "patch-notes",
                              "mechanics-wiki",
                              "speedrun-data"
                            ]
                          },
                          "statement": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4000
                          },
                          "citation": {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "locator": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "retrievedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "title",
                              "locator"
                            ],
                            "additionalProperties": false
                          },
                          "contentVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "authorship": {
                            "type": "object",
                            "properties": {
                              "publisher": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "author": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "publisher"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "kind",
                          "factKind",
                          "statement",
                          "citation",
                          "contentVersion",
                          "authorship"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "changeReason",
                  "payload"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "template-note"
                            },
                            "subject": {
                              "type": "string",
                              "enum": [
                                "mechanic",
                                "level",
                                "ui",
                                "camera",
                                "animation",
                                "audio",
                                "feedback",
                                "performance"
                              ]
                            },
                            "fields": {
                              "minItems": 1,
                              "maxItems": 60,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 4000
                                  },
                                  "otherReason": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "limitations": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "evidenceAnchorIds": {
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "subject",
                            "fields"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "hud-detection"
                            },
                            "field": {
                              "type": "string",
                              "enum": [
                                "health",
                                "resource",
                                "ammunition",
                                "cooldown",
                                "score",
                                "damage-number",
                                "objective-text"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "visibleFrames": {
                              "type": "object",
                              "properties": {
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            "detector": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "ocr",
                                    "template-match"
                                  ]
                                },
                                "model": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "kind",
                                "model",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "detectionLabel": {
                              "type": "string",
                              "const": "video-only detection"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "field",
                            "value",
                            "visibleFrames",
                            "detector",
                            "confidence",
                            "reviewState",
                            "detectionLabel"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "input-overlay-reading"
                            },
                            "inputLabel": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "indicatorState": {
                              "type": "string",
                              "enum": [
                                "visible",
                                "occluded",
                                "ambiguous",
                                "dropped",
                                "missing"
                              ]
                            },
                            "overlayPresent": {
                              "type": "boolean"
                            },
                            "assertedAsFact": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "inputLabel",
                            "indicatorState",
                            "overlayPresent",
                            "assertedAsFact"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "community-fact"
                            },
                            "factKind": {
                              "type": "string",
                              "enum": [
                                "frame-data-table",
                                "patch-notes",
                                "mechanics-wiki",
                                "speedrun-data"
                              ]
                            },
                            "statement": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            },
                            "citation": {
                              "type": "object",
                              "properties": {
                                "title": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "locator": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "retrievedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "title",
                                "locator"
                              ],
                              "additionalProperties": false
                            },
                            "contentVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "authorship": {
                              "type": "object",
                              "properties": {
                                "publisher": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "author": {
                                  "type": "string",
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "publisher"
                              ],
                              "additionalProperties": false
                            },
                            "provenanceClass": {
                              "type": "string",
                              "const": "community-fact"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "factKind",
                            "statement",
                            "citation",
                            "contentVersion",
                            "authorship",
                            "provenanceClass"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "record"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/editions/{editionId}/project-links": {
      "post": {
        "operationId": "linkProjectArtifacts",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "links": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "asset",
                            "level",
                            "animation-graph",
                            "behavior-tree",
                            "data-table",
                            "source-project",
                            "version"
                          ]
                        },
                        "nativeId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "engine": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "readAtRevision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "ownership": {
                          "type": "string",
                          "enum": [
                            "creator-owned",
                            "explicitly-authorized",
                            "studied-only",
                            "extracted-commercial"
                          ]
                        },
                        "authorizationEvidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        }
                      },
                      "required": [
                        "kind",
                        "nativeId",
                        "engine",
                        "readAtRevision",
                        "ownership"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "territory",
                  "links"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "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)$"
                    },
                    "tier": {
                      "type": "string",
                      "enum": [
                        "video-only",
                        "instrumented-session",
                        "creator-owned"
                      ]
                    },
                    "tierReasons": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    },
                    "linkedKinds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "asset",
                          "level",
                          "animation-graph",
                          "behavior-tree",
                          "data-table",
                          "source-project",
                          "version"
                        ]
                      }
                    },
                    "absentKinds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "asset",
                          "level",
                          "animation-graph",
                          "behavior-tree",
                          "data-table",
                          "source-project",
                          "version"
                        ]
                      }
                    },
                    "refused": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "asset",
                              "level",
                              "animation-graph",
                              "behavior-tree",
                              "data-table",
                              "source-project",
                              "version"
                            ]
                          },
                          "nativeId": {
                            "type": "string"
                          },
                          "problem": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "kind",
                          "nativeId",
                          "problem"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "links": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "link": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "asset",
                                  "level",
                                  "animation-graph",
                                  "behavior-tree",
                                  "data-table",
                                  "source-project",
                                  "version"
                                ]
                              },
                              "nativeId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "engine": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "readAtRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "ownership": {
                                "type": "string",
                                "enum": [
                                  "creator-owned",
                                  "explicitly-authorized",
                                  "studied-only",
                                  "extracted-commercial"
                                ]
                              },
                              "authorizationEvidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "linkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "linkedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "kind",
                              "nativeId",
                              "engine",
                              "readAtRevision",
                              "ownership",
                              "linkedAt",
                              "linkedByUserId"
                            ],
                            "additionalProperties": false
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "current",
                              "stale",
                              "unknown"
                            ]
                          },
                          "note": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "link",
                          "currency",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unmetRequirements": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "tier",
                    "tierReasons",
                    "linkedKinds",
                    "absentKinds",
                    "refused",
                    "links",
                    "unmetRequirements"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "describeProjectLinks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "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)$"
                    },
                    "tier": {
                      "type": "string",
                      "enum": [
                        "video-only",
                        "instrumented-session",
                        "creator-owned"
                      ]
                    },
                    "tierReasons": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    },
                    "linkedKinds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "asset",
                          "level",
                          "animation-graph",
                          "behavior-tree",
                          "data-table",
                          "source-project",
                          "version"
                        ]
                      }
                    },
                    "absentKinds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "asset",
                          "level",
                          "animation-graph",
                          "behavior-tree",
                          "data-table",
                          "source-project",
                          "version"
                        ]
                      }
                    },
                    "refused": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "asset",
                              "level",
                              "animation-graph",
                              "behavior-tree",
                              "data-table",
                              "source-project",
                              "version"
                            ]
                          },
                          "nativeId": {
                            "type": "string"
                          },
                          "problem": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "kind",
                          "nativeId",
                          "problem"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "links": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "link": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "asset",
                                  "level",
                                  "animation-graph",
                                  "behavior-tree",
                                  "data-table",
                                  "source-project",
                                  "version"
                                ]
                              },
                              "nativeId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "engine": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "readAtRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "ownership": {
                                "type": "string",
                                "enum": [
                                  "creator-owned",
                                  "explicitly-authorized",
                                  "studied-only",
                                  "extracted-commercial"
                                ]
                              },
                              "authorizationEvidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "linkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "linkedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "kind",
                              "nativeId",
                              "engine",
                              "readAtRevision",
                              "ownership",
                              "linkedAt",
                              "linkedByUserId"
                            ],
                            "additionalProperties": false
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "current",
                              "stale",
                              "unknown"
                            ]
                          },
                          "note": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "link",
                          "currency",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unmetRequirements": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "tier",
                    "tierReasons",
                    "linkedKinds",
                    "absentKinds",
                    "refused",
                    "links",
                    "unmetRequirements"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/editions/{editionId}/artifact-readings": {
      "post": {
        "operationId": "recordProjectArtifactReading",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "artifact": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "asset",
                          "level",
                          "animation-graph",
                          "behavior-tree",
                          "data-table",
                          "source-project",
                          "version"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "nativeId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1024
                      },
                      "readAtRevision": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "engine",
                      "nativeId",
                      "readAtRevision"
                    ],
                    "additionalProperties": false
                  },
                  "readingKind": {
                    "type": "string",
                    "enum": [
                      "value",
                      "structure"
                    ]
                  },
                  "field": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "unit": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  },
                  "limitations": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "anchorId": {
                    "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)$"
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "required": [
                  "territory",
                  "artifact",
                  "readingKind",
                  "field",
                  "value",
                  "limitations",
                  "subject"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reading": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "artifact": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "asset",
                                "level",
                                "animation-graph",
                                "behavior-tree",
                                "data-table",
                                "source-project",
                                "version"
                              ]
                            },
                            "engine": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            "readAtRevision": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "kind",
                            "engine",
                            "nativeId",
                            "readAtRevision"
                          ],
                          "additionalProperties": false
                        },
                        "analysisKind": {
                          "type": "string",
                          "enum": [
                            "visual",
                            "audio",
                            "ui",
                            "apparent-action",
                            "timing",
                            "level-flow",
                            "manual-mechanic",
                            "input-telemetry",
                            "state-telemetry",
                            "camera-telemetry",
                            "animation-telemetry",
                            "ai-telemetry",
                            "combat-telemetry",
                            "economy-telemetry",
                            "network-telemetry",
                            "performance-telemetry",
                            "asset-link",
                            "level-link",
                            "animation-graph-link",
                            "behavior-tree-link",
                            "data-table-link",
                            "source-project-link",
                            "version-link"
                          ]
                        },
                        "groundingTier": {
                          "type": "string",
                          "const": "creator-owned"
                        },
                        "readingKind": {
                          "type": "string",
                          "enum": [
                            "value",
                            "structure"
                          ]
                        },
                        "field": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        },
                        "unit": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "limitations": {
                          "minItems": 1,
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "recordedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reproductions": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "byUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "atRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              },
                              "verdict": {
                                "type": "string",
                                "enum": [
                                  "reproduced",
                                  "diverged",
                                  "artifact-moved"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "at",
                              "byUserId",
                              "atRevision",
                              "value",
                              "verdict"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "artifact",
                        "analysisKind",
                        "groundingTier",
                        "readingKind",
                        "field",
                        "value",
                        "limitations",
                        "recordedByUserId",
                        "reproductions"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "reading"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listProjectArtifactReadings",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "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)$"
                    },
                    "readings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reading": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "projectId": {
                                "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)$"
                              },
                              "editionId": {
                                "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)$"
                              },
                              "artifact": {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "asset",
                                      "level",
                                      "animation-graph",
                                      "behavior-tree",
                                      "data-table",
                                      "source-project",
                                      "version"
                                    ]
                                  },
                                  "engine": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "nativeId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "readAtRevision": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "engine",
                                  "nativeId",
                                  "readAtRevision"
                                ],
                                "additionalProperties": false
                              },
                              "analysisKind": {
                                "type": "string",
                                "enum": [
                                  "visual",
                                  "audio",
                                  "ui",
                                  "apparent-action",
                                  "timing",
                                  "level-flow",
                                  "manual-mechanic",
                                  "input-telemetry",
                                  "state-telemetry",
                                  "camera-telemetry",
                                  "animation-telemetry",
                                  "ai-telemetry",
                                  "combat-telemetry",
                                  "economy-telemetry",
                                  "network-telemetry",
                                  "performance-telemetry",
                                  "asset-link",
                                  "level-link",
                                  "animation-graph-link",
                                  "behavior-tree-link",
                                  "data-table-link",
                                  "source-project-link",
                                  "version-link"
                                ]
                              },
                              "groundingTier": {
                                "type": "string",
                                "const": "creator-owned"
                              },
                              "readingKind": {
                                "type": "string",
                                "enum": [
                                  "value",
                                  "structure"
                                ]
                              },
                              "field": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              },
                              "unit": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 40
                              },
                              "limitations": {
                                "minItems": 1,
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "recordedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "reproductions": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "at": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "byUserId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "atRevision": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "value": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 4000
                                    },
                                    "verdict": {
                                      "type": "string",
                                      "enum": [
                                        "reproduced",
                                        "diverged",
                                        "artifact-moved"
                                      ]
                                    },
                                    "note": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "at",
                                    "byUserId",
                                    "atRevision",
                                    "value",
                                    "verdict"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "projectId",
                              "editionId",
                              "artifact",
                              "analysisKind",
                              "groundingTier",
                              "readingKind",
                              "field",
                              "value",
                              "limitations",
                              "recordedByUserId",
                              "reproductions"
                            ],
                            "additionalProperties": false
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "current",
                              "stale",
                              "unlinked"
                            ]
                          },
                          "note": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "reading",
                          "currency",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "editionId",
                    "readings"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/artifact-readings/{readingId}/reproductions": {
      "post": {
        "operationId": "reproduceProjectArtifactReading",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "readingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "87d8f68d-9baf-4e62-a6f0-84de8ad9dfdd"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "atRevision": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "territory",
                  "atRevision",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reading": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "artifact": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "asset",
                                "level",
                                "animation-graph",
                                "behavior-tree",
                                "data-table",
                                "source-project",
                                "version"
                              ]
                            },
                            "engine": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            "readAtRevision": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "kind",
                            "engine",
                            "nativeId",
                            "readAtRevision"
                          ],
                          "additionalProperties": false
                        },
                        "analysisKind": {
                          "type": "string",
                          "enum": [
                            "visual",
                            "audio",
                            "ui",
                            "apparent-action",
                            "timing",
                            "level-flow",
                            "manual-mechanic",
                            "input-telemetry",
                            "state-telemetry",
                            "camera-telemetry",
                            "animation-telemetry",
                            "ai-telemetry",
                            "combat-telemetry",
                            "economy-telemetry",
                            "network-telemetry",
                            "performance-telemetry",
                            "asset-link",
                            "level-link",
                            "animation-graph-link",
                            "behavior-tree-link",
                            "data-table-link",
                            "source-project-link",
                            "version-link"
                          ]
                        },
                        "groundingTier": {
                          "type": "string",
                          "const": "creator-owned"
                        },
                        "readingKind": {
                          "type": "string",
                          "enum": [
                            "value",
                            "structure"
                          ]
                        },
                        "field": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        },
                        "unit": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "limitations": {
                          "minItems": 1,
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "recordedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reproductions": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "at": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "byUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "atRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              },
                              "verdict": {
                                "type": "string",
                                "enum": [
                                  "reproduced",
                                  "diverged",
                                  "artifact-moved"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "at",
                              "byUserId",
                              "atRevision",
                              "value",
                              "verdict"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "artifact",
                        "analysisKind",
                        "groundingTier",
                        "readingKind",
                        "field",
                        "value",
                        "limitations",
                        "recordedByUserId",
                        "reproductions"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "reading"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}/events": {
      "post": {
        "operationId": "ingestSessionEvents",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "family": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "stream": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "events": {
                    "minItems": 1,
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "sequence": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "at": {
                          "type": "number"
                        },
                        "clockBasis": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 60
                        }
                      },
                      "required": [
                        "sequence",
                        "at",
                        "clockBasis"
                      ],
                      "additionalProperties": {}
                    }
                  },
                  "declaredSamplingInterval": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "declaredMaxEventRateHz": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  }
                },
                "required": [
                  "territory",
                  "family",
                  "stream",
                  "events"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "family": {
                      "type": "string"
                    },
                    "stream": {
                      "type": "string"
                    },
                    "sessionId": {
                      "type": "string"
                    },
                    "report": {
                      "type": "object",
                      "properties": {
                        "family": {
                          "type": "string"
                        },
                        "stream": {
                          "type": "string"
                        },
                        "eventCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "results": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dimension": {
                                "type": "string",
                                "enum": [
                                  "schema",
                                  "ordering",
                                  "deduplication",
                                  "sampling",
                                  "clock-mapping",
                                  "gaps",
                                  "privacy",
                                  "load",
                                  "cross-version"
                                ]
                              },
                              "passed": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "issues": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "dimension",
                              "passed",
                              "issues"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "conformant": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "family",
                        "stream",
                        "eventCount",
                        "results",
                        "conformant"
                      ],
                      "additionalProperties": false
                    },
                    "unrun": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "inserted": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "duplicates": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "redactedFields": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "acceptedWithFaults": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "family",
                    "stream",
                    "sessionId",
                    "report",
                    "unrun",
                    "inserted",
                    "duplicates",
                    "redactedFields",
                    "acceptedWithFaults"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "readSessionEvents",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "family",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "afterSeq",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string"
                    },
                    "family": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "events": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "eventId": {
                            "type": "string"
                          },
                          "sessionId": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "seq": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "occurredAt": {
                            "type": "string"
                          },
                          "payload": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "required": [
                          "eventId",
                          "sessionId",
                          "kind",
                          "seq",
                          "occurredAt",
                          "payload"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "capturedCategories": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "scrubbedCategories": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "sessionId",
                    "family",
                    "events",
                    "capturedCategories",
                    "scrubbedCategories"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}": {
      "get": {
        "operationId": "readGameSession",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "session": {
                      "type": "object",
                      "properties": {
                        "editionId": {
                          "type": "string"
                        },
                        "sessionId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "editionId",
                        "sessionId"
                      ],
                      "additionalProperties": {}
                    }
                  },
                  "required": [
                    "session"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}/bookmarks": {
      "post": {
        "operationId": "saveSessionBookmark",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "bookmark": {
                    "type": "object",
                    "properties": {
                      "bookmarkId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "sessionId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 400
                      },
                      "capture": {
                        "type": "object",
                        "properties": {
                          "sessionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "build": {
                            "type": "object",
                            "properties": {
                              "platform": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "buildNumber": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "patchVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "contentManifestHash": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "region": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "platform",
                              "buildNumber",
                              "patchVersion",
                              "contentManifestHash"
                            ],
                            "additionalProperties": false
                          },
                          "device": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "console",
                                  "pc",
                                  "handheld",
                                  "cloud-streaming",
                                  "mobile"
                                ]
                              },
                              "identity": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "operatingSystem": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "displayLatencyMs": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 10000
                              },
                              "streamLatencyMs": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 10000
                              }
                            },
                            "required": [
                              "kind",
                              "identity"
                            ],
                            "additionalProperties": false
                          },
                          "controller": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "gamepad",
                                  "keyboard-mouse",
                                  "arcade-stick",
                                  "adaptive-controller",
                                  "touch",
                                  "motion"
                                ]
                              },
                              "identity": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pollingRateHz": {
                                "type": "number",
                                "minimum": 1,
                                "maximum": 10000
                              },
                              "remapProfile": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "identity"
                            ],
                            "additionalProperties": false
                          },
                          "settings": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "additionalProperties": {
                              "type": "string",
                              "maxLength": 500
                            }
                          },
                          "accessibilityAssists": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "mods": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "affectsGameplay": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "id",
                                "version",
                                "affectsGameplay"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "network": {
                            "type": "object",
                            "properties": {
                              "mode": {
                                "type": "string",
                                "enum": [
                                  "offline",
                                  "lan",
                                  "online-peer-to-peer",
                                  "online-server"
                                ]
                              },
                              "region": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "measuredRttMs": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 60000
                              },
                              "packetLossPercent": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 100
                              }
                            },
                            "required": [
                              "mode"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "sessionId",
                          "build",
                          "device"
                        ],
                        "additionalProperties": false
                      },
                      "evidence": {
                        "type": "object",
                        "properties": {
                          "sessionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "build": {
                            "type": "object",
                            "properties": {
                              "platform": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "buildNumber": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "patchVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "contentManifestHash": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "platform",
                              "buildNumber",
                              "patchVersion",
                              "contentManifestHash"
                            ],
                            "additionalProperties": false
                          },
                          "replayReferences": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "stateReferences": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "telemetryStreams": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "rngSeed": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "fixedTimestep": {
                            "type": "boolean"
                          },
                          "settingsPinned": {
                            "type": "boolean"
                          },
                          "networkMode": {
                            "type": "string",
                            "enum": [
                              "offline",
                              "lan",
                              "online-peer-to-peer",
                              "online-server"
                            ]
                          },
                          "gameplayAlteringModIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "liveServiceDependent": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "sessionId",
                          "build",
                          "replayReferences",
                          "stateReferences",
                          "telemetryStreams",
                          "networkMode",
                          "gameplayAlteringModIds"
                        ],
                        "additionalProperties": false
                      },
                      "restorePoint": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "save",
                                  "checkpoint",
                                  "replay-seek"
                                ]
                              },
                              "reference": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "atSessionMs": {
                                "type": "number",
                                "minimum": 0
                              }
                            },
                            "required": [
                              "kind",
                              "reference",
                              "atSessionMs"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "sourceTracks": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "video",
                                "audio",
                                "telemetry",
                                "input-overlay"
                              ]
                            },
                            "reference": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "kind",
                            "reference"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "eventRange": {
                        "type": "object",
                        "properties": {
                          "fromSessionMs": {
                            "type": "number",
                            "minimum": 0
                          },
                          "toSessionMs": {
                            "type": "number",
                            "minimum": 0
                          }
                        },
                        "required": [
                          "fromSessionMs",
                          "toSessionMs"
                        ],
                        "additionalProperties": false
                      },
                      "claimedClass": {
                        "type": "string",
                        "enum": [
                          "deterministic-replay",
                          "best-effort-replay",
                          "recorded-state",
                          "telemetry-only",
                          "non-reproducible"
                        ]
                      }
                    },
                    "required": [
                      "bookmarkId",
                      "sessionId",
                      "label",
                      "capture",
                      "evidence",
                      "restorePoint",
                      "sourceTracks",
                      "eventRange",
                      "claimedClass"
                    ],
                    "additionalProperties": false
                  },
                  "installedBuild": {
                    "type": "object",
                    "properties": {
                      "platform": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "buildNumber": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "patchVersion": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "contentManifestHash": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "platform",
                      "buildNumber",
                      "patchVersion",
                      "contentManifestHash"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "territory",
                  "bookmark",
                  "installedBuild"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "editionId": {
                          "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)$"
                        },
                        "savedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "bookmark": {
                          "type": "object",
                          "properties": {
                            "bookmarkId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "sessionId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            },
                            "capture": {
                              "type": "object",
                              "properties": {
                                "sessionId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "build": {
                                  "type": "object",
                                  "properties": {
                                    "platform": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "buildNumber": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "patchVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "contentManifestHash": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "region": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    }
                                  },
                                  "required": [
                                    "platform",
                                    "buildNumber",
                                    "patchVersion",
                                    "contentManifestHash"
                                  ],
                                  "additionalProperties": false
                                },
                                "device": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "console",
                                        "pc",
                                        "handheld",
                                        "cloud-streaming",
                                        "mobile"
                                      ]
                                    },
                                    "identity": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "operatingSystem": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "displayLatencyMs": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 10000
                                    },
                                    "streamLatencyMs": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 10000
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "identity"
                                  ],
                                  "additionalProperties": false
                                },
                                "controller": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "gamepad",
                                        "keyboard-mouse",
                                        "arcade-stick",
                                        "adaptive-controller",
                                        "touch",
                                        "motion"
                                      ]
                                    },
                                    "identity": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "pollingRateHz": {
                                      "type": "number",
                                      "minimum": 1,
                                      "maximum": 10000
                                    },
                                    "remapProfile": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "identity"
                                  ],
                                  "additionalProperties": false
                                },
                                "settings": {
                                  "type": "object",
                                  "propertyNames": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "accessibilityAssists": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "mods": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "version": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "affectsGameplay": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "version",
                                      "affectsGameplay"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "network": {
                                  "type": "object",
                                  "properties": {
                                    "mode": {
                                      "type": "string",
                                      "enum": [
                                        "offline",
                                        "lan",
                                        "online-peer-to-peer",
                                        "online-server"
                                      ]
                                    },
                                    "region": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "measuredRttMs": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 60000
                                    },
                                    "packetLossPercent": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 100
                                    }
                                  },
                                  "required": [
                                    "mode"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "sessionId",
                                "build",
                                "device"
                              ],
                              "additionalProperties": false
                            },
                            "evidence": {
                              "type": "object",
                              "properties": {
                                "sessionId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "build": {
                                  "type": "object",
                                  "properties": {
                                    "platform": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "buildNumber": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "patchVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "contentManifestHash": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "platform",
                                    "buildNumber",
                                    "patchVersion",
                                    "contentManifestHash"
                                  ],
                                  "additionalProperties": false
                                },
                                "replayReferences": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "stateReferences": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "telemetryStreams": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "rngSeed": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "fixedTimestep": {
                                  "type": "boolean"
                                },
                                "settingsPinned": {
                                  "type": "boolean"
                                },
                                "networkMode": {
                                  "type": "string",
                                  "enum": [
                                    "offline",
                                    "lan",
                                    "online-peer-to-peer",
                                    "online-server"
                                  ]
                                },
                                "gameplayAlteringModIds": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "liveServiceDependent": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "sessionId",
                                "build",
                                "replayReferences",
                                "stateReferences",
                                "telemetryStreams",
                                "networkMode",
                                "gameplayAlteringModIds"
                              ],
                              "additionalProperties": false
                            },
                            "restorePoint": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "save",
                                        "checkpoint",
                                        "replay-seek"
                                      ]
                                    },
                                    "reference": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    },
                                    "atSessionMs": {
                                      "type": "number",
                                      "minimum": 0
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "reference",
                                    "atSessionMs"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sourceTracks": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "video",
                                      "audio",
                                      "telemetry",
                                      "input-overlay"
                                    ]
                                  },
                                  "reference": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "kind",
                                  "reference"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "eventRange": {
                              "type": "object",
                              "properties": {
                                "fromSessionMs": {
                                  "type": "number",
                                  "minimum": 0
                                },
                                "toSessionMs": {
                                  "type": "number",
                                  "minimum": 0
                                }
                              },
                              "required": [
                                "fromSessionMs",
                                "toSessionMs"
                              ],
                              "additionalProperties": false
                            },
                            "claimedClass": {
                              "type": "string",
                              "enum": [
                                "deterministic-replay",
                                "best-effort-replay",
                                "recorded-state",
                                "telemetry-only",
                                "non-reproducible"
                              ]
                            }
                          },
                          "required": [
                            "bookmarkId",
                            "sessionId",
                            "label",
                            "capture",
                            "evidence",
                            "restorePoint",
                            "sourceTracks",
                            "eventRange",
                            "claimedClass"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "editionId",
                        "savedByUserId",
                        "bookmark"
                      ],
                      "additionalProperties": false
                    },
                    "restorability": {
                      "type": "object",
                      "properties": {
                        "bookmarkId": {
                          "type": "string"
                        },
                        "outcome": {
                          "type": "string",
                          "enum": [
                            "restorable",
                            "restorable-degraded",
                            "not-restorable"
                          ]
                        },
                        "effectiveClass": {
                          "type": "string",
                          "enum": [
                            "deterministic-replay",
                            "best-effort-replay",
                            "recorded-state",
                            "telemetry-only",
                            "non-reproducible"
                          ]
                        },
                        "capturedClass": {
                          "type": "string",
                          "enum": [
                            "deterministic-replay",
                            "best-effort-replay",
                            "recorded-state",
                            "telemetry-only",
                            "non-reproducible"
                          ]
                        },
                        "buildChanged": {
                          "type": "boolean"
                        },
                        "contentChanged": {
                          "type": "boolean"
                        },
                        "reasons": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "bookmarkId",
                        "outcome",
                        "effectiveClass",
                        "capturedClass",
                        "buildChanged",
                        "contentChanged",
                        "reasons"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "record",
                    "restorability"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listSessionBookmarks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "editionId": {
                      "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)$"
                    },
                    "sessionId": {
                      "type": "string"
                    },
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "editionId": {
                            "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)$"
                          },
                          "savedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "bookmark": {
                            "type": "object",
                            "properties": {
                              "bookmarkId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "sessionId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "capture": {
                                "type": "object",
                                "properties": {
                                  "sessionId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "build": {
                                    "type": "object",
                                    "properties": {
                                      "platform": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "buildNumber": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "patchVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "contentManifestHash": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "region": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      }
                                    },
                                    "required": [
                                      "platform",
                                      "buildNumber",
                                      "patchVersion",
                                      "contentManifestHash"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "device": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "console",
                                          "pc",
                                          "handheld",
                                          "cloud-streaming",
                                          "mobile"
                                        ]
                                      },
                                      "identity": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "operatingSystem": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "displayLatencyMs": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 10000
                                      },
                                      "streamLatencyMs": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 10000
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "identity"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "controller": {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "gamepad",
                                          "keyboard-mouse",
                                          "arcade-stick",
                                          "adaptive-controller",
                                          "touch",
                                          "motion"
                                        ]
                                      },
                                      "identity": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "pollingRateHz": {
                                        "type": "number",
                                        "minimum": 1,
                                        "maximum": 10000
                                      },
                                      "remapProfile": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "identity"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "settings": {
                                    "type": "object",
                                    "propertyNames": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "accessibilityAssists": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "mods": {
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "version": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "affectsGameplay": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "version",
                                        "affectsGameplay"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "network": {
                                    "type": "object",
                                    "properties": {
                                      "mode": {
                                        "type": "string",
                                        "enum": [
                                          "offline",
                                          "lan",
                                          "online-peer-to-peer",
                                          "online-server"
                                        ]
                                      },
                                      "region": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "measuredRttMs": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 60000
                                      },
                                      "packetLossPercent": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                      }
                                    },
                                    "required": [
                                      "mode"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "sessionId",
                                  "build",
                                  "device"
                                ],
                                "additionalProperties": false
                              },
                              "evidence": {
                                "type": "object",
                                "properties": {
                                  "sessionId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "build": {
                                    "type": "object",
                                    "properties": {
                                      "platform": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "buildNumber": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "patchVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "contentManifestHash": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "platform",
                                      "buildNumber",
                                      "patchVersion",
                                      "contentManifestHash"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "replayReferences": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "stateReferences": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "telemetryStreams": {
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "rngSeed": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "fixedTimestep": {
                                    "type": "boolean"
                                  },
                                  "settingsPinned": {
                                    "type": "boolean"
                                  },
                                  "networkMode": {
                                    "type": "string",
                                    "enum": [
                                      "offline",
                                      "lan",
                                      "online-peer-to-peer",
                                      "online-server"
                                    ]
                                  },
                                  "gameplayAlteringModIds": {
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "liveServiceDependent": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "sessionId",
                                  "build",
                                  "replayReferences",
                                  "stateReferences",
                                  "telemetryStreams",
                                  "networkMode",
                                  "gameplayAlteringModIds"
                                ],
                                "additionalProperties": false
                              },
                              "restorePoint": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "save",
                                          "checkpoint",
                                          "replay-seek"
                                        ]
                                      },
                                      "reference": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                      },
                                      "atSessionMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "reference",
                                      "atSessionMs"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sourceTracks": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "video",
                                        "audio",
                                        "telemetry",
                                        "input-overlay"
                                      ]
                                    },
                                    "reference": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "reference"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "eventRange": {
                                "type": "object",
                                "properties": {
                                  "fromSessionMs": {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  "toSessionMs": {
                                    "type": "number",
                                    "minimum": 0
                                  }
                                },
                                "required": [
                                  "fromSessionMs",
                                  "toSessionMs"
                                ],
                                "additionalProperties": false
                              },
                              "claimedClass": {
                                "type": "string",
                                "enum": [
                                  "deterministic-replay",
                                  "best-effort-replay",
                                  "recorded-state",
                                  "telemetry-only",
                                  "non-reproducible"
                                ]
                              }
                            },
                            "required": [
                              "bookmarkId",
                              "sessionId",
                              "label",
                              "capture",
                              "evidence",
                              "restorePoint",
                              "sourceTracks",
                              "eventRange",
                              "claimedClass"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "editionId",
                          "savedByUserId",
                          "bookmark"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "restorabilityNote": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "editionId",
                    "sessionId",
                    "records",
                    "restorabilityNote"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}/encounter-comparison": {
      "post": {
        "operationId": "compareEncounterBookmarks",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "encounterId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "recordIds": {
                    "minItems": 2,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "installedBuilds": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "platform": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "buildNumber": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "patchVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "contentManifestHash": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "platform",
                        "buildNumber",
                        "patchVersion",
                        "contentManifestHash"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "territory",
                  "encounterId",
                  "recordIds",
                  "installedBuilds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "comparison": {
                      "type": "object",
                      "properties": {
                        "encounterId": {
                          "type": "string"
                        },
                        "verdict": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "encounterId",
                        "verdict"
                      ],
                      "additionalProperties": {}
                    }
                  },
                  "required": [
                    "comparison"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "comparison": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "researchQuestionId": null,
                    "researchQuestionText": "How is depth staged?",
                    "inclusionLogic": "Battle sequences with three readable planes.",
                    "exclusions": [],
                    "members": [
                      {
                        "role": "example",
                        "anchorId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                        "rationale": "Three planes.",
                        "orderKey": 0,
                        "intake": {
                          "source": "search",
                          "sourceRecordKind": "interpretation",
                          "sourceRecordId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
                        }
                      },
                      {
                        "role": "counterexample",
                        "anchorId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                        "rationale": "Flat staging.",
                        "orderKey": 1
                      }
                    ],
                    "alignments": [],
                    "syncMarkers": [
                      {
                        "name": "the cavalry crests the ridge",
                        "orderKey": 0,
                        "basis": {
                          "kind": "absolute-time",
                          "timeBaseFpsNumerator": 24000,
                          "timeBaseFpsDenominator": 1001
                        },
                        "offsets": [
                          {
                            "memberIndex": 0,
                            "offsetFrames": 0
                          },
                          {
                            "memberIndex": 1,
                            "offsetFrames": 18
                          }
                        ],
                        "provenance": {
                          "authorKind": "human",
                          "authorId": "analyst-1",
                          "confidence": "high",
                          "uncertainty": "The counterexample cut is soft; ±2 frames.",
                          "sourceVersions": [
                            {
                              "editionId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                              "technicalRevisionHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                            }
                          ],
                          "acceptedCorrections": []
                        }
                      }
                    ],
                    "layout": "side-by-side",
                    "corpusBoundary": "Two films.",
                    "collaboratorUserIds": [],
                    "snapshot": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}/event-window": {
      "post": {
        "operationId": "readSessionEventWindow",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "fromSessionMs": {
                    "type": "number",
                    "minimum": 0
                  },
                  "toSessionMs": {
                    "type": "number",
                    "minimum": 0
                  },
                  "requestedCategories": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  },
                  "connectorSamples": {
                    "maxItems": 10000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "atSessionMs": {
                          "type": "number",
                          "minimum": 0
                        },
                        "connected": {
                          "type": "boolean"
                        },
                        "eventRateHz": {
                          "type": "number",
                          "minimum": 0
                        },
                        "droppedBySource": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "bufferedEvents": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "atSessionMs",
                        "connected",
                        "eventRateHz",
                        "droppedBySource",
                        "bufferedEvents"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "connectorExpectations": {
                    "type": "object",
                    "properties": {
                      "declaredMaxEventRateHz": {
                        "type": "number",
                        "minimum": 0
                      },
                      "starvedRateFraction": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1
                      },
                      "bufferHighWaterMark": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "territory",
                  "fromSessionMs",
                  "toSessionMs",
                  "requestedCategories"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string"
                    },
                    "fromSessionMs": {
                      "type": "number"
                    },
                    "toSessionMs": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "standing": {
                            "type": "string",
                            "enum": [
                              "readable",
                              "scrubbed",
                              "undeclared"
                            ]
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "category",
                          "standing",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "fullyReadable": {
                      "type": "boolean"
                    },
                    "overlappingDegradation": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "fromSessionMs": {
                            "type": "number"
                          },
                          "toSessionMs": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "fromSessionMs",
                          "toSessionMs"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "caveat": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "degradationAssessed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "sessionId",
                    "fromSessionMs",
                    "toSessionMs",
                    "categories",
                    "fullyReadable",
                    "overlappingDegradation",
                    "caveat",
                    "degradationAssessed"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/game-sessions/{editionId}/hit-feel": {
      "post": {
        "operationId": "buildHitFeelTimeline",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "editionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "42ef25ef-e399-439e-a682-62ccb22df189"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "actionId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "contactAtSessionMs": {
                    "type": "number",
                    "minimum": 0
                  },
                  "contributions": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 60
                        },
                        "startOffsetMs": {
                          "type": "number"
                        },
                        "endOffsetMs": {
                          "type": "number"
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "intensity": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        }
                      },
                      "required": [
                        "channel",
                        "startOffsetMs",
                        "endOffsetMs",
                        "label"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "uncertaintyMs": {
                    "type": "number",
                    "minimum": 0
                  }
                },
                "required": [
                  "territory",
                  "actionId",
                  "contactAtSessionMs",
                  "contributions"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "timeline": {
                      "type": "object",
                      "properties": {
                        "actionId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "actionId"
                      ],
                      "additionalProperties": {}
                    }
                  },
                  "required": [
                    "timeline"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/video-only-game-records/hud-read": {
      "post": {
        "operationId": "readHudValue",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "anchorId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "gameBuild": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "measuredWidthPx": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "measuredHeightPx": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "hudPreset": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "language": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "elements": {
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "field": {
                              "type": "string",
                              "enum": [
                                "health",
                                "resource",
                                "ammunition",
                                "cooldown",
                                "score",
                                "damage-number",
                                "objective-text"
                              ]
                            },
                            "readout": {
                              "type": "string",
                              "enum": [
                                "numeric",
                                "bar",
                                "radial",
                                "text",
                                "icon-stack"
                              ]
                            },
                            "region": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "width": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "height": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y",
                                "width",
                                "height"
                              ],
                              "additionalProperties": false
                            },
                            "fillDirection": {
                              "type": "string",
                              "enum": [
                                "left-to-right",
                                "right-to-left",
                                "bottom-to-top",
                                "top-to-bottom"
                              ]
                            },
                            "sweepStartDeg": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 360
                            },
                            "sweepDirection": {
                              "type": "string",
                              "enum": [
                                "clockwise",
                                "anticlockwise"
                              ]
                            },
                            "stackCapacity": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000
                            }
                          },
                          "required": [
                            "id",
                            "field",
                            "readout",
                            "region"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "id",
                      "gameBuild",
                      "measuredWidthPx",
                      "measuredHeightPx",
                      "hudPreset",
                      "language",
                      "elements"
                    ],
                    "additionalProperties": false
                  },
                  "footage": {
                    "type": "object",
                    "properties": {
                      "gameBuild": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "widthPx": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "heightPx": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "hudPreset": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "language": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      }
                    },
                    "required": [
                      "gameBuild",
                      "widthPx",
                      "heightPx",
                      "hudPreset",
                      "language"
                    ],
                    "additionalProperties": false
                  },
                  "element": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "field": {
                        "type": "string",
                        "enum": [
                          "health",
                          "resource",
                          "ammunition",
                          "cooldown",
                          "score",
                          "damage-number",
                          "objective-text"
                        ]
                      },
                      "readout": {
                        "type": "string",
                        "enum": [
                          "numeric",
                          "bar",
                          "radial",
                          "text",
                          "icon-stack"
                        ]
                      },
                      "region": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "y": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "width": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "height": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "x",
                          "y",
                          "width",
                          "height"
                        ],
                        "additionalProperties": false
                      },
                      "fillDirection": {
                        "type": "string",
                        "enum": [
                          "left-to-right",
                          "right-to-left",
                          "bottom-to-top",
                          "top-to-bottom"
                        ]
                      },
                      "sweepStartDeg": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 360
                      },
                      "sweepDirection": {
                        "type": "string",
                        "enum": [
                          "clockwise",
                          "anticlockwise"
                        ]
                      },
                      "stackCapacity": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1000
                      }
                    },
                    "required": [
                      "id",
                      "field",
                      "readout",
                      "region"
                    ],
                    "additionalProperties": false
                  },
                  "observations": {
                    "minItems": 1,
                    "maxItems": 2000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "elementId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "frame": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "glyphs": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 40
                              },
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "width": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "confidence": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "text",
                              "x",
                              "width",
                              "confidence"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "fillFraction": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "sweptDeg": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 360
                        },
                        "litIcons": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1000
                        },
                        "occluded": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "elementId",
                        "frame"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "detector": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "ocr",
                          "template-match"
                        ]
                      },
                      "model": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "version": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "kind",
                      "model",
                      "version"
                    ],
                    "additionalProperties": false
                  },
                  "confidence": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "anchorId",
                  "territory",
                  "layout",
                  "footage",
                  "element",
                  "observations",
                  "detector",
                  "confidence"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "template-note"
                            },
                            "subject": {
                              "type": "string",
                              "enum": [
                                "mechanic",
                                "level",
                                "ui",
                                "camera",
                                "animation",
                                "audio",
                                "feedback",
                                "performance"
                              ]
                            },
                            "fields": {
                              "minItems": 1,
                              "maxItems": 60,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 4000
                                  },
                                  "otherReason": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "uncertainty": {
                                    "type": "string",
                                    "maxLength": 1000
                                  },
                                  "limitations": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "evidenceAnchorIds": {
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "subject",
                            "fields"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "hud-detection"
                            },
                            "field": {
                              "type": "string",
                              "enum": [
                                "health",
                                "resource",
                                "ammunition",
                                "cooldown",
                                "score",
                                "damage-number",
                                "objective-text"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "visibleFrames": {
                              "type": "object",
                              "properties": {
                                "startFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endFrame": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startFrame",
                                "endFrame"
                              ],
                              "additionalProperties": false
                            },
                            "detector": {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "ocr",
                                    "template-match"
                                  ]
                                },
                                "model": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "kind",
                                "model",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "detectionLabel": {
                              "type": "string",
                              "const": "video-only detection"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "field",
                            "value",
                            "visibleFrames",
                            "detector",
                            "confidence",
                            "reviewState",
                            "detectionLabel"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "input-overlay-reading"
                            },
                            "inputLabel": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "indicatorState": {
                              "type": "string",
                              "enum": [
                                "visible",
                                "occluded",
                                "ambiguous",
                                "dropped",
                                "missing"
                              ]
                            },
                            "overlayPresent": {
                              "type": "boolean"
                            },
                            "assertedAsFact": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "inputLabel",
                            "indicatorState",
                            "overlayPresent",
                            "assertedAsFact"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "anchorId": {
                              "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)$"
                            },
                            "groundingTier": {
                              "type": "string",
                              "enum": [
                                "video-only",
                                "instrumented-session",
                                "creator-owned"
                              ]
                            },
                            "recordedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "kind": {
                              "type": "string",
                              "const": "community-fact"
                            },
                            "factKind": {
                              "type": "string",
                              "enum": [
                                "frame-data-table",
                                "patch-notes",
                                "mechanics-wiki",
                                "speedrun-data"
                              ]
                            },
                            "statement": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            },
                            "citation": {
                              "type": "object",
                              "properties": {
                                "title": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "locator": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "retrievedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "title",
                                "locator"
                              ],
                              "additionalProperties": false
                            },
                            "contentVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "authorship": {
                              "type": "object",
                              "properties": {
                                "publisher": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "author": {
                                  "type": "string",
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "publisher"
                              ],
                              "additionalProperties": false
                            },
                            "provenanceClass": {
                              "type": "string",
                              "const": "community-fact"
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "anchorId",
                            "groundingTier",
                            "recordedByUserId",
                            "kind",
                            "factKind",
                            "statement",
                            "citation",
                            "contentVersion",
                            "authorship",
                            "provenanceClass"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "record"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/templates": {
      "get": {
        "operationId": "listAtlasTemplates",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "templates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "templateId": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*$"
                          },
                          "version": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "subject": {
                            "type": "string",
                            "minLength": 1
                          },
                          "displayName": {
                            "type": "string",
                            "minLength": 1
                          },
                          "owner": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*$"
                          },
                          "declaredQuestionTypes": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "facetSchema": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "facetId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "description": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "valueMode": {
                                  "type": "string",
                                  "enum": [
                                    "bounded",
                                    "reviewed-extensible",
                                    "open"
                                  ]
                                },
                                "allowedValues": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                }
                              },
                              "required": [
                                "facetId",
                                "label",
                                "description",
                                "valueMode",
                                "allowedValues"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "evidenceChannels": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "face",
                                "gaze",
                                "voice",
                                "breath",
                                "posture",
                                "gesture",
                                "movement",
                                "language",
                                "silence",
                                "spacing",
                                "missing-unavailable"
                              ]
                            }
                          },
                          "comparisonProtocol": {
                            "type": "object",
                            "properties": {
                              "alignmentBasis": {
                                "type": "string",
                                "minLength": 1
                              },
                              "comparedDimensions": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "notes": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "alignmentBasis",
                              "comparedDimensions"
                            ],
                            "additionalProperties": false
                          },
                          "practiceSuggestions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "safetyNotes": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "applicability": {
                            "type": "object",
                            "properties": {
                              "sourceTypes": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "film",
                                    "video",
                                    "game",
                                    "document",
                                    "image",
                                    "audio",
                                    "3d-scene"
                                  ]
                                }
                              },
                              "traditions": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "limitations": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              }
                            },
                            "required": [
                              "sourceTypes",
                              "traditions",
                              "limitations"
                            ],
                            "additionalProperties": false
                          },
                          "isContextualExemplar": {
                            "type": "boolean",
                            "const": true
                          }
                        },
                        "required": [
                          "templateId",
                          "version",
                          "subject",
                          "displayName",
                          "owner",
                          "declaredQuestionTypes",
                          "facetSchema",
                          "evidenceChannels",
                          "comparisonProtocol",
                          "practiceSuggestions",
                          "safetyNotes",
                          "applicability",
                          "isContextualExemplar"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "practiceFamilies": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "family": {
                            "type": "string",
                            "enum": [
                              "re-performance",
                              "animation",
                              "camera",
                              "editing",
                              "sound",
                              "writing"
                            ]
                          },
                          "varies": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "holds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "minimumVariants": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "requiredValues": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "material": {
                            "type": "string",
                            "enum": [
                              "learner-owned",
                              "original-text",
                              "authorized-source"
                            ]
                          }
                        },
                        "required": [
                          "family",
                          "varies",
                          "holds",
                          "minimumVariants",
                          "requiredValues",
                          "material"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "templates",
                    "practiceFamilies"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "authorAtlasTemplate",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "authority": {
                    "type": "object",
                    "properties": {
                      "actorKind": {
                        "type": "string",
                        "enum": [
                          "human",
                          "group",
                          "model"
                        ]
                      },
                      "role": {
                        "type": "string",
                        "enum": [
                          "owner",
                          "editor",
                          "commenter",
                          "viewer"
                        ]
                      },
                      "domains": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "expertise": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "subject": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "educator",
                                "domain-expert"
                              ]
                            },
                            "vouchedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "subject",
                            "kind",
                            "vouchedBy"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "localeStanding": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "locale": {
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 35
                            },
                            "vouchedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "locale",
                            "vouchedBy"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "actorKind",
                      "role",
                      "domains",
                      "expertise",
                      "localeStanding"
                    ],
                    "additionalProperties": false
                  },
                  "template": {
                    "type": "object",
                    "properties": {
                      "templateId": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "version": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "subject": {
                        "type": "string",
                        "minLength": 1
                      },
                      "displayName": {
                        "type": "string",
                        "minLength": 1
                      },
                      "owner": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "declaredQuestionTypes": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "facetSchema": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "facetId": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1
                            },
                            "description": {
                              "type": "string",
                              "minLength": 1
                            },
                            "valueMode": {
                              "type": "string",
                              "enum": [
                                "bounded",
                                "reviewed-extensible",
                                "open"
                              ]
                            },
                            "allowedValues": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            }
                          },
                          "required": [
                            "facetId",
                            "label",
                            "description",
                            "valueMode",
                            "allowedValues"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "evidenceChannels": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "face",
                            "gaze",
                            "voice",
                            "breath",
                            "posture",
                            "gesture",
                            "movement",
                            "language",
                            "silence",
                            "spacing",
                            "missing-unavailable"
                          ]
                        }
                      },
                      "comparisonProtocol": {
                        "type": "object",
                        "properties": {
                          "alignmentBasis": {
                            "type": "string",
                            "minLength": 1
                          },
                          "comparedDimensions": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "notes": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "required": [
                          "alignmentBasis",
                          "comparedDimensions"
                        ],
                        "additionalProperties": false
                      },
                      "practiceSuggestions": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "safetyNotes": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "applicability": {
                        "type": "object",
                        "properties": {
                          "sourceTypes": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "film",
                                "video",
                                "game",
                                "document",
                                "image",
                                "audio",
                                "3d-scene"
                              ]
                            }
                          },
                          "traditions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "limitations": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          }
                        },
                        "required": [
                          "sourceTypes",
                          "traditions",
                          "limitations"
                        ],
                        "additionalProperties": false
                      },
                      "isContextualExemplar": {
                        "type": "boolean",
                        "const": true
                      }
                    },
                    "required": [
                      "templateId",
                      "version",
                      "subject",
                      "displayName",
                      "owner",
                      "declaredQuestionTypes",
                      "facetSchema",
                      "evidenceChannels",
                      "comparisonProtocol",
                      "practiceSuggestions",
                      "safetyNotes",
                      "applicability",
                      "isContextualExemplar"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "authority",
                  "template"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "template": {
                          "type": "object",
                          "properties": {
                            "templateId": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "version": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "subject": {
                              "type": "string",
                              "minLength": 1
                            },
                            "displayName": {
                              "type": "string",
                              "minLength": 1
                            },
                            "owner": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "declaredQuestionTypes": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "facetSchema": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "facetId": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "description": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "valueMode": {
                                    "type": "string",
                                    "enum": [
                                      "bounded",
                                      "reviewed-extensible",
                                      "open"
                                    ]
                                  },
                                  "allowedValues": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  }
                                },
                                "required": [
                                  "facetId",
                                  "label",
                                  "description",
                                  "valueMode",
                                  "allowedValues"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "evidenceChannels": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "face",
                                  "gaze",
                                  "voice",
                                  "breath",
                                  "posture",
                                  "gesture",
                                  "movement",
                                  "language",
                                  "silence",
                                  "spacing",
                                  "missing-unavailable"
                                ]
                              }
                            },
                            "comparisonProtocol": {
                              "type": "object",
                              "properties": {
                                "alignmentBasis": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "comparedDimensions": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "notes": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "required": [
                                "alignmentBasis",
                                "comparedDimensions"
                              ],
                              "additionalProperties": false
                            },
                            "practiceSuggestions": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "safetyNotes": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "applicability": {
                              "type": "object",
                              "properties": {
                                "sourceTypes": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "film",
                                      "video",
                                      "game",
                                      "document",
                                      "image",
                                      "audio",
                                      "3d-scene"
                                    ]
                                  }
                                },
                                "traditions": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "limitations": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                }
                              },
                              "required": [
                                "sourceTypes",
                                "traditions",
                                "limitations"
                              ],
                              "additionalProperties": false
                            },
                            "isContextualExemplar": {
                              "type": "boolean",
                              "const": true
                            }
                          },
                          "required": [
                            "templateId",
                            "version",
                            "subject",
                            "displayName",
                            "owner",
                            "declaredQuestionTypes",
                            "facetSchema",
                            "evidenceChannels",
                            "comparisonProtocol",
                            "practiceSuggestions",
                            "safetyNotes",
                            "applicability",
                            "isContextualExemplar"
                          ],
                          "additionalProperties": false
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "published",
                            "deprecated",
                            "withdrawn"
                          ]
                        },
                        "authorId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviews": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "outcome": {
                                "type": "string",
                                "enum": [
                                  "accepted",
                                  "changes-requested",
                                  "rejected"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              }
                            },
                            "required": [
                              "reviewerId",
                              "outcome",
                              "note"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "locales": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          }
                        },
                        "deprecation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "successorVersion": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "by": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "reason",
                                "successorVersion",
                                "by"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededByVersion": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "template",
                        "state",
                        "authorId",
                        "reviews",
                        "locales",
                        "deprecation",
                        "supersededByVersion"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "record"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/hybrid-search": {
      "post": {
        "operationId": "hybridSearch",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "query": {
                    "type": "object",
                    "properties": {
                      "root": {
                        "$ref": "#/$defs/__schema0"
                      }
                    },
                    "required": [
                      "root"
                    ],
                    "additionalProperties": false
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 200
                  },
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 400
                  },
                  "corpusVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "indexVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "analyzerVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "expandNarrower": {
                    "type": "boolean"
                  },
                  "maxSubsumptionDepth": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  }
                },
                "required": [
                  "query",
                  "territory",
                  "corpusVersion",
                  "indexVersion"
                ],
                "additionalProperties": false,
                "$defs": {
                  "__schema0": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "filter"
                          },
                          "filter": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "source"
                                  },
                                  "workIds": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  },
                                  "titles": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    }
                                  },
                                  "editionIds": {
                                    "minItems": 1,
                                    "maxItems": 500,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  },
                                  "buildIds": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "media": {
                                    "minItems": 1,
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "film",
                                        "television",
                                        "animation",
                                        "game",
                                        "audio",
                                        "still-image",
                                        "document",
                                        "mixed-media"
                                      ]
                                    }
                                  },
                                  "platforms": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    }
                                  },
                                  "creators": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "performers": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "characters": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "levels": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "genres": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    }
                                  },
                                  "releasedFrom": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "releasedTo": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "locator"
                                  },
                                  "locatorKinds": {
                                    "minItems": 1,
                                    "maxItems": 6,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "frame-range",
                                        "frame-region",
                                        "transcript-span",
                                        "document",
                                        "runtime-event-range",
                                        "spatial"
                                      ]
                                    }
                                  },
                                  "trackIds": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "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)$"
                                    }
                                  },
                                  "frameWindow": {
                                    "type": "object",
                                    "properties": {
                                      "startFrame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "endFrame": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    },
                                    "required": [
                                      "startFrame",
                                      "endFrame"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "timeWindowMs": {
                                    "type": "object",
                                    "properties": {
                                      "startMs": {
                                        "type": "number",
                                        "minimum": 0
                                      },
                                      "endMs": {
                                        "type": "number",
                                        "minimum": 0
                                      }
                                    },
                                    "required": [
                                      "startMs",
                                      "endMs"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "epistemic"
                                  },
                                  "objectTypes": {
                                    "minItems": 1,
                                    "maxItems": 7,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "source-fact",
                                        "detection",
                                        "observation",
                                        "interpretation",
                                        "craft-hypothesis",
                                        "creator-statement",
                                        "practice-result"
                                      ]
                                    }
                                  },
                                  "reviewStates": {
                                    "minItems": 1,
                                    "maxItems": 7,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "suggested",
                                        "accepted",
                                        "corrected",
                                        "contested",
                                        "rejected",
                                        "superseded"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "taxonomy"
                                  },
                                  "terms": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "domain": {
                                          "type": "string",
                                          "pattern": "^[a-z][a-z0-9-]*$"
                                        },
                                        "facet": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "termRef": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "domain",
                                        "facet",
                                        "termRef"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "terms"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "text"
                                  },
                                  "query": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "fields": {
                                    "minItems": 1,
                                    "maxItems": 9,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "transcript",
                                        "subtitle",
                                        "note",
                                        "document",
                                        "comment",
                                        "claim",
                                        "creator-statement",
                                        "question",
                                        "original-project"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "query"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "vector"
                                  },
                                  "modality": {
                                    "type": "string",
                                    "enum": [
                                      "semantic",
                                      "visual",
                                      "motion",
                                      "audio"
                                    ]
                                  },
                                  "feature": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "enum": [
                                          "palette",
                                          "composition",
                                          "silhouette",
                                          "pose",
                                          "object",
                                          "whole-image",
                                          "region"
                                        ]
                                      },
                                      {
                                        "type": "string",
                                        "enum": [
                                          "pose-sequence",
                                          "trajectory",
                                          "timing",
                                          "contact",
                                          "phase",
                                          "action"
                                        ]
                                      },
                                      {
                                        "type": "string",
                                        "enum": [
                                          "voice-feature",
                                          "rhythm",
                                          "timbre",
                                          "music",
                                          "sound-event",
                                          "mix"
                                        ]
                                      }
                                    ]
                                  },
                                  "reference": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "anchor"
                                          },
                                          "anchorId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "anchorId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "text"
                                          },
                                          "text": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 2000
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "text"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "selection"
                                          },
                                          "selectionRef": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "selectionRef"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "minSimilarity": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "modality",
                                  "reference"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "runtime"
                                  },
                                  "eventKinds": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "eventSequence": {
                                    "minItems": 2,
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "maxSequenceGapMs": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 3600000
                                  },
                                  "stateTransitions": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "mechanics": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "inputPatterns": {
                                    "minItems": 1,
                                    "maxItems": 100,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "settings": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "performanceConditions": {
                                    "minItems": 1,
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "metric": {
                                          "type": "string",
                                          "enum": [
                                            "frame-rate",
                                            "frame-time-ms",
                                            "dropped-frame-rate",
                                            "network-latency-ms"
                                          ]
                                        },
                                        "min": {
                                          "type": "number"
                                        },
                                        "max": {
                                          "type": "number"
                                        }
                                      },
                                      "required": [
                                        "metric"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "relationship"
                                  },
                                  "pathKind": {
                                    "type": "string",
                                    "enum": [
                                      "entity-relation",
                                      "motif",
                                      "claim-evidence",
                                      "region-principle",
                                      "principle-concept",
                                      "decision-output",
                                      "source-to-decision"
                                    ]
                                  },
                                  "relation": {
                                    "type": "string",
                                    "enum": [
                                      "portrayed-by",
                                      "part-of",
                                      "variant-of",
                                      "associated-with",
                                      "appears-in"
                                    ]
                                  },
                                  "fromEntityId": {
                                    "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)$"
                                  },
                                  "toEntityId": {
                                    "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)$"
                                  },
                                  "maxDepth": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 8
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "pathKind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "rights"
                                  },
                                  "permitsActions": {
                                    "minItems": 1,
                                    "maxItems": 12,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "playback",
                                        "frame-extraction",
                                        "proxy-generation",
                                        "transcription",
                                        "embedding",
                                        "model-analysis",
                                        "collaboration",
                                        "teaching",
                                        "publication",
                                        "export",
                                        "model-training",
                                        "project-transfer"
                                      ]
                                    }
                                  },
                                  "rightsClasses": {
                                    "minItems": 1,
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    }
                                  },
                                  "territories": {
                                    "minItems": 1,
                                    "maxItems": 60,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 8
                                    }
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "permission"
                                  },
                                  "visibilities": {
                                    "minItems": 1,
                                    "maxItems": 3,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "own",
                                        "project-shared",
                                        "published"
                                      ]
                                    }
                                  },
                                  "collaboratorUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "synthetic-media"
                                  },
                                  "dispositions": {
                                    "minItems": 1,
                                    "maxItems": 4,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "ai-generated",
                                        "ai-modified",
                                        "not-ai",
                                        "indeterminate"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "dispositions"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "culture"
                                  },
                                  "cultures": {
                                    "minItems": 1,
                                    "maxItems": 60,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "traditions": {
                                    "minItems": 1,
                                    "maxItems": 60,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "cultures"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "language"
                                  },
                                  "languages": {
                                    "minItems": 1,
                                    "maxItems": 60,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 2,
                                      "maxLength": 35
                                    }
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "languages"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "review"
                                  },
                                  "reviewStates": {
                                    "minItems": 1,
                                    "maxItems": 7,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "suggested",
                                        "accepted",
                                        "corrected",
                                        "contested",
                                        "rejected",
                                        "superseded"
                                      ]
                                    }
                                  },
                                  "reviewerUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "dimension",
                                  "reviewStates"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "dimension": {
                                    "type": "string",
                                    "const": "version"
                                  },
                                  "schemaVersions": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                    }
                                  },
                                  "sourceVersions": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  }
                                },
                                "required": [
                                  "dimension"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "filter"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "and"
                          },
                          "clauses": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "$ref": "#/$defs/__schema0"
                            }
                          }
                        },
                        "required": [
                          "type",
                          "clauses"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "or"
                          },
                          "clauses": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "$ref": "#/$defs/__schema0"
                            }
                          }
                        },
                        "required": [
                          "type",
                          "clauses"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "not"
                          },
                          "clause": {
                            "$ref": "#/$defs/__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "clause"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "recordId": {
                            "type": "string"
                          },
                          "recordKind": {
                            "type": "string"
                          },
                          "epistemicType": {
                            "type": "string"
                          },
                          "sourceAnchors": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "anchorId": {
                                  "type": "string"
                                },
                                "locatorKind": {
                                  "type": "string"
                                },
                                "locatorLabel": {
                                  "type": "string"
                                },
                                "editionId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "anchorId",
                                "locatorKind",
                                "locatorLabel"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "context": {
                            "type": "object",
                            "properties": {
                              "structuralPath": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "neighbouringRecordCounts": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              }
                            },
                            "required": [
                              "structuralPath",
                              "neighbouringRecordCounts"
                            ],
                            "additionalProperties": false
                          },
                          "confidence": {},
                          "dissent": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "recordId": {
                                  "type": "string"
                                },
                                "epistemicType": {
                                  "type": "string"
                                },
                                "summary": {
                                  "type": "string"
                                },
                                "authorKind": {
                                  "type": "string",
                                  "enum": [
                                    "human",
                                    "model"
                                  ]
                                }
                              },
                              "required": [
                                "recordId",
                                "epistemicType",
                                "summary",
                                "authorKind"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "counterevidence": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "recordId": {
                                  "type": "string"
                                },
                                "anchorId": {
                                  "type": "string"
                                },
                                "relation": {
                                  "type": "string",
                                  "enum": [
                                    "contradiction",
                                    "counterexample"
                                  ]
                                },
                                "summary": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "recordId",
                                "anchorId",
                                "relation",
                                "summary"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "preview": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "text-excerpt",
                                  "thumbnail-ref",
                                  "waveform-ref"
                                ]
                              },
                              "value": {
                                "type": "string"
                              },
                              "grantId": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "value",
                              "grantId"
                            ],
                            "additionalProperties": false
                          },
                          "explanation": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "dimension": {
                                  "type": "string"
                                },
                                "statement": {
                                  "type": "string"
                                },
                                "score": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "dimension",
                                "statement"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "review": {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "enum": [
                                  "suggested",
                                  "accepted",
                                  "corrected",
                                  "contested",
                                  "rejected",
                                  "superseded"
                                ]
                              },
                              "reviewerUserId": {
                                "type": "string"
                              },
                              "reviewedAt": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "state"
                            ],
                            "additionalProperties": false
                          },
                          "version": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "sourceVersion": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "revision"
                            ],
                            "additionalProperties": false
                          },
                          "missing": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "facet": {
                                  "type": "string",
                                  "enum": [
                                    "source-anchors",
                                    "context",
                                    "confidence",
                                    "dissent",
                                    "counterevidence",
                                    "preview",
                                    "explanation",
                                    "review",
                                    "version"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-recorded",
                                    "not-applicable",
                                    "withheld-by-rights",
                                    "withheld-by-permission",
                                    "projection-unavailable"
                                  ]
                                },
                                "detail": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "facet",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "recordId",
                          "recordKind",
                          "missing"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "nextCursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "hasMore": {
                      "type": "boolean"
                    },
                    "totalMatched": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "cost": {
                      "type": "object",
                      "properties": {
                        "totalCostUnits": {
                          "type": "number"
                        },
                        "estimatedResults": {
                          "type": "number"
                        },
                        "contributions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dimension": {
                                "type": "string"
                              },
                              "candidatesEvaluated": {
                                "type": "number"
                              },
                              "costUnits": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "dimension",
                              "candidatesEvaluated",
                              "costUnits"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "totalCostUnits",
                        "estimatedResults",
                        "contributions"
                      ],
                      "additionalProperties": false
                    },
                    "snapshot": {
                      "type": "object",
                      "properties": {
                        "queryHash": {
                          "type": "string"
                        },
                        "rankingVersion": {
                          "type": "string"
                        },
                        "corpusVersion": {
                          "type": "string"
                        },
                        "indexVersions": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "modelVersions": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "executedDimensions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "thresholds": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "dimension": {
                                "type": "string"
                              },
                              "value": {
                                "type": "number"
                              },
                              "source": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "dimension",
                              "value",
                              "source"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "queryHash",
                        "rankingVersion",
                        "corpusVersion",
                        "indexVersions",
                        "modelVersions",
                        "executedDimensions",
                        "thresholds"
                      ],
                      "additionalProperties": false
                    },
                    "excludedWorks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "title",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "searchedWorks": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "undecidedRecords": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "recordId": {
                                "type": "string"
                              },
                              "recordKind": {
                                "type": "string"
                              },
                              "reasons": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "dimension": {
                                      "type": "string"
                                    },
                                    "field": {
                                      "type": "string"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "field-undeclared",
                                        "date-precision-too-coarse",
                                        "dimension-not-owned"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "dimension",
                                    "field",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "recordId",
                              "recordKind",
                              "reasons"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "evaluated": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "undecidedRecords",
                        "evaluated"
                      ],
                      "additionalProperties": false
                    },
                    "taxonomy": {
                      "type": "object",
                      "properties": {
                        "undecidedRecords": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "recordId": {
                                "type": "string"
                              },
                              "recordKind": {
                                "type": "string"
                              },
                              "reasons": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "never-tagged",
                                    "term-unresolved",
                                    "dimension-not-owned"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "recordId",
                              "recordKind",
                              "reasons"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "unresolvedTerms": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "unusableExtensionTerms": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "evaluated": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "undecidedRecords",
                        "unresolvedTerms",
                        "unusableExtensionTerms",
                        "evaluated"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "results",
                    "nextCursor",
                    "hasMore",
                    "totalMatched",
                    "cost",
                    "snapshot",
                    "excludedWorks",
                    "searchedWorks",
                    "metadata",
                    "taxonomy"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/spaced-review/items": {
      "post": {
        "operationId": "generateSpacedReviewItems",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "learnerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "sources": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "study-card",
                            "claim",
                            "vocabulary",
                            "question",
                            "comparison",
                            "feedback"
                          ]
                        },
                        "backlink": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "prompt": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        },
                        "expectedResponse": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        },
                        "discriminationTarget": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "source": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "study-card"
                                },
                                "cardRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "cardRef"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "claim"
                                },
                                "claimId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "claimId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "term"
                                },
                                "termId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "termId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "drill"
                                },
                                "drillPrompt": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "kind",
                                "drillPrompt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "derivativeRightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "backlink",
                        "prompt",
                        "discriminationTarget",
                        "source"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "learnerUserId",
                  "sources"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "learnerUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "source": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "study-card"
                                  },
                                  "cardRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "cardRef"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "claim"
                                  },
                                  "claimId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "claimId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "term"
                                  },
                                  "termId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "termId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "drill"
                                  },
                                  "drillPrompt": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "drillPrompt"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "scheduleState": {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "enum": [
                                  "new",
                                  "learning",
                                  "review",
                                  "relearning"
                                ]
                              },
                              "due": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "stability": {
                                "type": "number",
                                "minimum": 0
                              },
                              "difficulty": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 10
                              },
                              "reps": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "lapses": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "state",
                              "due",
                              "stability",
                              "difficulty",
                              "reps",
                              "lapses"
                            ],
                            "additionalProperties": false
                          },
                          "schedulerVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "anchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "discriminationTarget": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "reviewHistory": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reviewedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "rating": {
                                  "type": "string",
                                  "enum": [
                                    "again",
                                    "hard",
                                    "good",
                                    "easy"
                                  ]
                                }
                              },
                              "required": [
                                "reviewedAt",
                                "rating"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "derivativeRightsGrantIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "learnerUserId",
                          "source",
                          "scheduleState",
                          "schedulerVersion",
                          "anchorIds",
                          "discriminationTarget",
                          "reviewHistory",
                          "derivativeRightsGrantIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "skipped": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sourceId": {
                            "type": "string"
                          },
                          "issues": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "field": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "field",
                                "message"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "sourceId",
                          "issues"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "items",
                    "skipped"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/spaced-review/drills": {
      "post": {
        "operationId": "buildPerceptualDrill",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "learnerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "drill": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "longer-lens-discrimination",
                          "cutting-on-action",
                          "pose-contact-phase",
                          "sound-hierarchy",
                          "palette-value-grouping",
                          "game-feedback"
                        ]
                      },
                      "derivatives": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "ref": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            "rightsPermitted": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "ref",
                            "rightsPermitted"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "sourceAnchors": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "intendedDistinction": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1000
                      },
                      "options": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "correct": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "correct"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "contestable": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "derivatives",
                      "sourceAnchors",
                      "intendedDistinction",
                      "options",
                      "contestable"
                    ],
                    "additionalProperties": false
                  },
                  "derivativeRightsGrantIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "projectId",
                  "learnerUserId",
                  "drill"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "item": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "source": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "study-card"
                                },
                                "cardRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "cardRef"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "claim"
                                },
                                "claimId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "claimId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "term"
                                },
                                "termId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "termId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "drill"
                                },
                                "drillPrompt": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "kind",
                                "drillPrompt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "scheduleState": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "new",
                                "learning",
                                "review",
                                "relearning"
                              ]
                            },
                            "due": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "stability": {
                              "type": "number",
                              "minimum": 0
                            },
                            "difficulty": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "reps": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "lapses": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "state",
                            "due",
                            "stability",
                            "difficulty",
                            "reps",
                            "lapses"
                          ],
                          "additionalProperties": false
                        },
                        "schedulerVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "discriminationTarget": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "reviewHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "rating": {
                                "type": "string",
                                "enum": [
                                  "again",
                                  "hard",
                                  "good",
                                  "easy"
                                ]
                              }
                            },
                            "required": [
                              "reviewedAt",
                              "rating"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "derivativeRightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "learnerUserId",
                        "source",
                        "scheduleState",
                        "schedulerVersion",
                        "anchorIds",
                        "discriminationTarget",
                        "reviewHistory",
                        "derivativeRightsGrantIds"
                      ],
                      "additionalProperties": false
                    },
                    "evidence": {
                      "type": "object",
                      "properties": {
                        "sourceAnchors": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "derivativeRefs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "intendedDistinction": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "sourceAnchors",
                        "derivativeRefs",
                        "intendedDistinction"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "item",
                    "evidence"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/spaced-review/due": {
      "get": {
        "operationId": "listDueSpacedReviews",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "due": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "learnerUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "source": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "study-card"
                                  },
                                  "cardRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "kind",
                                  "cardRef"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "claim"
                                  },
                                  "claimId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "claimId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "term"
                                  },
                                  "termId": {
                                    "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)$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "termId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "drill"
                                  },
                                  "drillPrompt": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "drillPrompt"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "scheduleState": {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "enum": [
                                  "new",
                                  "learning",
                                  "review",
                                  "relearning"
                                ]
                              },
                              "due": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "stability": {
                                "type": "number",
                                "minimum": 0
                              },
                              "difficulty": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 10
                              },
                              "reps": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "lapses": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "state",
                              "due",
                              "stability",
                              "difficulty",
                              "reps",
                              "lapses"
                            ],
                            "additionalProperties": false
                          },
                          "schedulerVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "anchorIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "discriminationTarget": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "reviewHistory": {
                            "maxItems": 10000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reviewedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "rating": {
                                  "type": "string",
                                  "enum": [
                                    "again",
                                    "hard",
                                    "good",
                                    "easy"
                                  ]
                                }
                              },
                              "required": [
                                "reviewedAt",
                                "rating"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "derivativeRightsGrantIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "learnerUserId",
                          "source",
                          "scheduleState",
                          "schedulerVersion",
                          "anchorIds",
                          "discriminationTarget",
                          "reviewHistory",
                          "derivativeRightsGrantIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "notYetDueCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "neverScheduledCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "due",
                    "notYetDueCount",
                    "neverScheduledCount",
                    "at"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/spaced-review/items/{itemId}/review": {
      "post": {
        "operationId": "recordSpacedReviewOutcome",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a5b13b08-b535-42fe-a75b-bb1986c12105"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "rating": {
                    "type": "string",
                    "enum": [
                      "again",
                      "hard",
                      "good",
                      "easy"
                    ]
                  }
                },
                "required": [
                  "rating"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "item": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "source": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "study-card"
                                },
                                "cardRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "cardRef"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "claim"
                                },
                                "claimId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "claimId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "term"
                                },
                                "termId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "termId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "drill"
                                },
                                "drillPrompt": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "kind",
                                "drillPrompt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "scheduleState": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "new",
                                "learning",
                                "review",
                                "relearning"
                              ]
                            },
                            "due": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "stability": {
                              "type": "number",
                              "minimum": 0
                            },
                            "difficulty": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "reps": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "lapses": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "state",
                            "due",
                            "stability",
                            "difficulty",
                            "reps",
                            "lapses"
                          ],
                          "additionalProperties": false
                        },
                        "schedulerVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "discriminationTarget": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "reviewHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "rating": {
                                "type": "string",
                                "enum": [
                                  "again",
                                  "hard",
                                  "good",
                                  "easy"
                                ]
                              }
                            },
                            "required": [
                              "reviewedAt",
                              "rating"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "derivativeRightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "learnerUserId",
                        "source",
                        "scheduleState",
                        "schedulerVersion",
                        "anchorIds",
                        "discriminationTarget",
                        "reviewHistory",
                        "derivativeRightsGrantIds"
                      ],
                      "additionalProperties": false
                    },
                    "due": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "const": "scheduled"
                            },
                            "dueAt": {
                              "type": "string"
                            },
                            "binding": {
                              "type": "object",
                              "properties": {
                                "family": {
                                  "type": "string",
                                  "enum": [
                                    "fsrs",
                                    "item-response"
                                  ]
                                },
                                "metisSchedulerRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "algorithmVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "parameterSetVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "family",
                                "metisSchedulerRef",
                                "algorithmVersion",
                                "parameterSetVersion"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "status",
                            "dueAt",
                            "binding"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "const": "unscheduled"
                            },
                            "reason": {
                              "type": "string",
                              "enum": [
                                "no-scheduler-answered",
                                "answer-refused",
                                "family-produces-no-date"
                              ]
                            },
                            "issues": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "field": {
                                    "type": "string"
                                  },
                                  "message": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "field",
                                  "message"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "binding": {
                              "type": "object",
                              "properties": {
                                "family": {
                                  "type": "string",
                                  "enum": [
                                    "fsrs",
                                    "item-response"
                                  ]
                                },
                                "metisSchedulerRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "algorithmVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "parameterSetVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "family",
                                "metisSchedulerRef",
                                "algorithmVersion",
                                "parameterSetVersion"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "status",
                            "reason"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "item",
                    "due"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/template-records": {
      "get": {
        "operationId": "listAuthoredAtlasTemplates",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "template": {
                            "type": "object",
                            "properties": {
                              "templateId": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "version": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "subject": {
                                "type": "string",
                                "minLength": 1
                              },
                              "displayName": {
                                "type": "string",
                                "minLength": 1
                              },
                              "owner": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "declaredQuestionTypes": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "facetSchema": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "facetId": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    },
                                    "label": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "description": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "valueMode": {
                                      "type": "string",
                                      "enum": [
                                        "bounded",
                                        "reviewed-extensible",
                                        "open"
                                      ]
                                    },
                                    "allowedValues": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  },
                                  "required": [
                                    "facetId",
                                    "label",
                                    "description",
                                    "valueMode",
                                    "allowedValues"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "evidenceChannels": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "face",
                                    "gaze",
                                    "voice",
                                    "breath",
                                    "posture",
                                    "gesture",
                                    "movement",
                                    "language",
                                    "silence",
                                    "spacing",
                                    "missing-unavailable"
                                  ]
                                }
                              },
                              "comparisonProtocol": {
                                "type": "object",
                                "properties": {
                                  "alignmentBasis": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "comparedDimensions": {
                                    "minItems": 1,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  },
                                  "notes": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "required": [
                                  "alignmentBasis",
                                  "comparedDimensions"
                                ],
                                "additionalProperties": false
                              },
                              "practiceSuggestions": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "safetyNotes": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "applicability": {
                                "type": "object",
                                "properties": {
                                  "sourceTypes": {
                                    "minItems": 1,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "film",
                                        "video",
                                        "game",
                                        "document",
                                        "image",
                                        "audio",
                                        "3d-scene"
                                      ]
                                    }
                                  },
                                  "traditions": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  },
                                  "limitations": {
                                    "minItems": 1,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  }
                                },
                                "required": [
                                  "sourceTypes",
                                  "traditions",
                                  "limitations"
                                ],
                                "additionalProperties": false
                              },
                              "isContextualExemplar": {
                                "type": "boolean",
                                "const": true
                              }
                            },
                            "required": [
                              "templateId",
                              "version",
                              "subject",
                              "displayName",
                              "owner",
                              "declaredQuestionTypes",
                              "facetSchema",
                              "evidenceChannels",
                              "comparisonProtocol",
                              "practiceSuggestions",
                              "safetyNotes",
                              "applicability",
                              "isContextualExemplar"
                            ],
                            "additionalProperties": false
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "published",
                              "deprecated",
                              "withdrawn"
                            ]
                          },
                          "authorId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "reviews": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reviewerId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "outcome": {
                                  "type": "string",
                                  "enum": [
                                    "accepted",
                                    "changes-requested",
                                    "rejected"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 4000
                                }
                              },
                              "required": [
                                "reviewerId",
                                "outcome",
                                "note"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "locales": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 35
                            }
                          },
                          "deprecation": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "successorVersion": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "by": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "reason",
                                  "successorVersion",
                                  "by"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededByVersion": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "template",
                          "state",
                          "authorId",
                          "reviews",
                          "locales",
                          "deprecation",
                          "supersededByVersion"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "records"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/template-records/{recordId}/review": {
      "post": {
        "operationId": "reviewAtlasTemplate",
        "parameters": [
          {
            "name": "recordId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "161c7962-7555-4d0e-acc0-53876df51af9"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "authority": {
                    "type": "object",
                    "properties": {
                      "actorKind": {
                        "type": "string",
                        "enum": [
                          "human",
                          "group",
                          "model"
                        ]
                      },
                      "role": {
                        "type": "string",
                        "enum": [
                          "owner",
                          "editor",
                          "commenter",
                          "viewer"
                        ]
                      },
                      "domains": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "expertise": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "subject": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "educator",
                                "domain-expert"
                              ]
                            },
                            "vouchedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "subject",
                            "kind",
                            "vouchedBy"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "localeStanding": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "locale": {
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 35
                            },
                            "vouchedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "locale",
                            "vouchedBy"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "actorKind",
                      "role",
                      "domains",
                      "expertise",
                      "localeStanding"
                    ],
                    "additionalProperties": false
                  },
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "accepted",
                      "changes-requested",
                      "rejected"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  }
                },
                "required": [
                  "authority",
                  "outcome",
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "template": {
                          "type": "object",
                          "properties": {
                            "templateId": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "version": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "subject": {
                              "type": "string",
                              "minLength": 1
                            },
                            "displayName": {
                              "type": "string",
                              "minLength": 1
                            },
                            "owner": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "declaredQuestionTypes": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "facetSchema": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "facetId": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "description": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "valueMode": {
                                    "type": "string",
                                    "enum": [
                                      "bounded",
                                      "reviewed-extensible",
                                      "open"
                                    ]
                                  },
                                  "allowedValues": {
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  }
                                },
                                "required": [
                                  "facetId",
                                  "label",
                                  "description",
                                  "valueMode",
                                  "allowedValues"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "evidenceChannels": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "face",
                                  "gaze",
                                  "voice",
                                  "breath",
                                  "posture",
                                  "gesture",
                                  "movement",
                                  "language",
                                  "silence",
                                  "spacing",
                                  "missing-unavailable"
                                ]
                              }
                            },
                            "comparisonProtocol": {
                              "type": "object",
                              "properties": {
                                "alignmentBasis": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "comparedDimensions": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "notes": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "required": [
                                "alignmentBasis",
                                "comparedDimensions"
                              ],
                              "additionalProperties": false
                            },
                            "practiceSuggestions": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "safetyNotes": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "applicability": {
                              "type": "object",
                              "properties": {
                                "sourceTypes": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "film",
                                      "video",
                                      "game",
                                      "document",
                                      "image",
                                      "audio",
                                      "3d-scene"
                                    ]
                                  }
                                },
                                "traditions": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "limitations": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                }
                              },
                              "required": [
                                "sourceTypes",
                                "traditions",
                                "limitations"
                              ],
                              "additionalProperties": false
                            },
                            "isContextualExemplar": {
                              "type": "boolean",
                              "const": true
                            }
                          },
                          "required": [
                            "templateId",
                            "version",
                            "subject",
                            "displayName",
                            "owner",
                            "declaredQuestionTypes",
                            "facetSchema",
                            "evidenceChannels",
                            "comparisonProtocol",
                            "practiceSuggestions",
                            "safetyNotes",
                            "applicability",
                            "isContextualExemplar"
                          ],
                          "additionalProperties": false
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "draft",
                            "published",
                            "deprecated",
                            "withdrawn"
                          ]
                        },
                        "authorId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "reviews": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "outcome": {
                                "type": "string",
                                "enum": [
                                  "accepted",
                                  "changes-requested",
                                  "rejected"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              }
                            },
                            "required": [
                              "reviewerId",
                              "outcome",
                              "note"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "locales": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          }
                        },
                        "deprecation": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "successorVersion": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "by": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "reason",
                                "successorVersion",
                                "by"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededByVersion": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "template",
                        "state",
                        "authorId",
                        "reviews",
                        "locales",
                        "deprecation",
                        "supersededByVersion"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "record"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/collections": {
      "post": {
        "operationId": "createAtlasCollection",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "templateId": {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9-]*$"
                  },
                  "templateVersion": {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                  },
                  "displayName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "comparisonQuestion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "inclusionCriteria": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "exclusionCriteria": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "blindObservationRequired": {
                    "type": "boolean"
                  },
                  "normalization": {
                    "type": "object",
                    "properties": {
                      "dimension": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "relevanceRationale": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    },
                    "required": [
                      "dimension",
                      "relevanceRationale"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "templateId",
                  "templateVersion",
                  "displayName",
                  "comparisonQuestion",
                  "inclusionCriteria",
                  "blindObservationRequired"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "templateId": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "templateVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "displayName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "comparisonQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionCriteria": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusionCriteria": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blindObservationRequired": {
                          "type": "boolean"
                        },
                        "blindObservationRecordedBy": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "normalization": {
                          "type": "object",
                          "properties": {
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "relevanceRationale": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "dimension",
                            "relevanceRationale"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "templateId",
                        "templateVersion",
                        "displayName",
                        "comparisonQuestion",
                        "inclusionCriteria",
                        "exclusionCriteria",
                        "blindObservationRequired",
                        "blindObservationRecordedBy"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/atlas/collections": {
      "get": {
        "operationId": "listAtlasCollections",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collections": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "templateId": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*$"
                          },
                          "templateVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "displayName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "comparisonQuestion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "inclusionCriteria": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "exclusionCriteria": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "blindObservationRequired": {
                            "type": "boolean"
                          },
                          "blindObservationRecordedBy": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "normalization": {
                            "type": "object",
                            "properties": {
                              "dimension": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "relevanceRationale": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "dimension",
                              "relevanceRationale"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "templateId",
                          "templateVersion",
                          "displayName",
                          "comparisonQuestion",
                          "inclusionCriteria",
                          "exclusionCriteria",
                          "blindObservationRequired",
                          "blindObservationRecordedBy"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "collections"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/collections/{collectionId}/instances": {
      "post": {
        "operationId": "addAtlasInstance",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "anchorId": {
                    "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)$"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "example",
                      "counterexample"
                    ]
                  },
                  "inclusionReason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "alignmentPoint": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 400
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "facetApplications": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "taxonomy": {
                              "type": "object",
                              "properties": {
                                "templateId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                },
                                "templateVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "facetId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                }
                              },
                              "required": [
                                "templateId",
                                "templateVersion",
                                "facetId"
                              ],
                              "additionalProperties": false
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            },
                            "proposedValue": {
                              "type": "boolean"
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "origin": {
                              "type": "string",
                              "const": "human-applied"
                            },
                            "appliedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "confidence": {
                              "type": "string",
                              "enum": [
                                "certain",
                                "probable",
                                "possible",
                                "uncertain"
                              ]
                            },
                            "note": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "taxonomy",
                            "value",
                            "proposedValue",
                            "reviewState",
                            "origin",
                            "appliedBy",
                            "confidence"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "taxonomy": {
                              "type": "object",
                              "properties": {
                                "templateId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                },
                                "templateVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "facetId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                }
                              },
                              "required": [
                                "templateId",
                                "templateVersion",
                                "facetId"
                              ],
                              "additionalProperties": false
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            },
                            "proposedValue": {
                              "type": "boolean"
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "origin": {
                              "type": "string",
                              "const": "model-suggested"
                            },
                            "model": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "id",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "calibrated"
                                    },
                                    "value": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "calibration": {
                                      "type": "object",
                                      "properties": {
                                        "method": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "calibrationSetId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "calibrationSetVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "validatedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "method",
                                        "calibrationSetId",
                                        "calibrationSetVersion",
                                        "validatedAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "interval": {
                                      "type": "object",
                                      "properties": {
                                        "lower": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "upper": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "coverage": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "exclusiveMaximum": 1
                                        }
                                      },
                                      "required": [
                                        "lower",
                                        "upper",
                                        "coverage"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "applicabilityBoundary": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "value",
                                    "calibration",
                                    "interval",
                                    "applicabilityBoundary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "uncalibrated"
                                    },
                                    "rawScore": {
                                      "type": "number"
                                    },
                                    "scale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "rawScore",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "missing"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "not-applicable",
                                        "not-yet-calibrated",
                                        "legacy-import",
                                        "processor-omitted"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "taxonomy",
                            "value",
                            "proposedValue",
                            "reviewState",
                            "origin",
                            "model",
                            "confidence"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "taxonomy": {
                              "type": "object",
                              "properties": {
                                "templateId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                },
                                "templateVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "facetId": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                }
                              },
                              "required": [
                                "templateId",
                                "templateVersion",
                                "facetId"
                              ],
                              "additionalProperties": false
                            },
                            "value": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            },
                            "proposedValue": {
                              "type": "boolean"
                            },
                            "reviewState": {
                              "type": "string",
                              "enum": [
                                "suggested",
                                "accepted",
                                "corrected",
                                "contested",
                                "rejected",
                                "superseded"
                              ]
                            },
                            "origin": {
                              "type": "string",
                              "const": "imported"
                            },
                            "importedFrom": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "taxonomyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "taxonomyVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "foreignTerm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                },
                                "mapping": {
                                  "type": "string",
                                  "enum": [
                                    "exact",
                                    "narrower",
                                    "broader",
                                    "unmapped"
                                  ]
                                },
                                "foreignReviewState": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "system",
                                "taxonomyId",
                                "taxonomyVersion",
                                "foreignTerm",
                                "mapping",
                                "foreignReviewState"
                              ],
                              "additionalProperties": false
                            },
                            "confidence": {
                              "type": "object",
                              "properties": {
                                "statedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "statedValue": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "statedBy",
                                "scale",
                                "statedValue"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "taxonomy",
                            "value",
                            "proposedValue",
                            "reviewState",
                            "origin",
                            "importedFrom",
                            "confidence"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "channelReadings": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "enum": [
                            "face",
                            "gaze",
                            "voice",
                            "breath",
                            "posture",
                            "gesture",
                            "movement",
                            "language",
                            "silence",
                            "spacing",
                            "missing-unavailable"
                          ]
                        },
                        "availability": {
                          "type": "string",
                          "enum": [
                            "available",
                            "missing",
                            "occluded",
                            "unreliable",
                            "rights-restricted",
                            "unavailable"
                          ]
                        },
                        "note": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "channel",
                        "availability"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rowCells": {
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "row": {
                          "type": "string",
                          "enum": [
                            "channel-use",
                            "context",
                            "camera",
                            "edit",
                            "sound",
                            "animation-game-state"
                          ]
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "observed",
                            "interpretation",
                            "unknown",
                            "disagreement",
                            "counterexample",
                            "unavailable",
                            "forbidden"
                          ]
                        },
                        "availability": {
                          "type": "string",
                          "enum": [
                            "available",
                            "missing",
                            "occluded",
                            "unreliable",
                            "rights-restricted",
                            "unavailable"
                          ]
                        },
                        "readings": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "reasoning": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              }
                            },
                            "required": [
                              "reviewerId",
                              "value"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "row",
                        "state",
                        "availability",
                        "readings"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "anchorId",
                  "role",
                  "inclusionReason",
                  "alignmentPoint",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "instance": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "collectionId": {
                          "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)$"
                        },
                        "anchorId": {
                          "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)$"
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "example",
                            "counterexample"
                          ]
                        },
                        "inclusionReason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "alignmentPoint": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 400
                        },
                        "facetApplications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "applicationId": {
                                    "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)$"
                                  },
                                  "taxonomy": {
                                    "type": "object",
                                    "properties": {
                                      "templateId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      },
                                      "templateVersion": {
                                        "type": "string",
                                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                      },
                                      "facetId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      }
                                    },
                                    "required": [
                                      "templateId",
                                      "templateVersion",
                                      "facetId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  },
                                  "proposedValue": {
                                    "type": "boolean"
                                  },
                                  "reviewState": {
                                    "type": "string",
                                    "enum": [
                                      "suggested",
                                      "accepted",
                                      "corrected",
                                      "contested",
                                      "rejected",
                                      "superseded"
                                    ]
                                  },
                                  "origin": {
                                    "type": "string",
                                    "const": "human-applied"
                                  },
                                  "appliedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "confidence": {
                                    "type": "string",
                                    "enum": [
                                      "certain",
                                      "probable",
                                      "possible",
                                      "uncertain"
                                    ]
                                  },
                                  "note": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "applicationId",
                                  "taxonomy",
                                  "value",
                                  "proposedValue",
                                  "reviewState",
                                  "origin",
                                  "appliedBy",
                                  "confidence"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "applicationId": {
                                    "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)$"
                                  },
                                  "taxonomy": {
                                    "type": "object",
                                    "properties": {
                                      "templateId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      },
                                      "templateVersion": {
                                        "type": "string",
                                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                      },
                                      "facetId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      }
                                    },
                                    "required": [
                                      "templateId",
                                      "templateVersion",
                                      "facetId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  },
                                  "proposedValue": {
                                    "type": "boolean"
                                  },
                                  "reviewState": {
                                    "type": "string",
                                    "enum": [
                                      "suggested",
                                      "accepted",
                                      "corrected",
                                      "contested",
                                      "rejected",
                                      "superseded"
                                    ]
                                  },
                                  "origin": {
                                    "type": "string",
                                    "const": "model-suggested"
                                  },
                                  "model": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "version": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "version"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "confidence": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "status": {
                                            "type": "string",
                                            "const": "calibrated"
                                          },
                                          "value": {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 1
                                          },
                                          "calibration": {
                                            "type": "object",
                                            "properties": {
                                              "method": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 120
                                              },
                                              "calibrationSetId": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200
                                              },
                                              "calibrationSetVersion": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 80
                                              },
                                              "validatedAt": {
                                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                              }
                                            },
                                            "required": [
                                              "method",
                                              "calibrationSetId",
                                              "calibrationSetVersion",
                                              "validatedAt"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "interval": {
                                            "type": "object",
                                            "properties": {
                                              "lower": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "upper": {
                                                "type": "number",
                                                "minimum": 0,
                                                "maximum": 1
                                              },
                                              "coverage": {
                                                "type": "number",
                                                "exclusiveMinimum": 0,
                                                "exclusiveMaximum": 1
                                              }
                                            },
                                            "required": [
                                              "lower",
                                              "upper",
                                              "coverage"
                                            ],
                                            "additionalProperties": false
                                          },
                                          "applicabilityBoundary": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          }
                                        },
                                        "required": [
                                          "status",
                                          "value",
                                          "calibration",
                                          "interval",
                                          "applicabilityBoundary"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "status": {
                                            "type": "string",
                                            "const": "uncalibrated"
                                          },
                                          "rawScore": {
                                            "type": "number"
                                          },
                                          "scale": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "status",
                                          "rawScore",
                                          "scale"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "status": {
                                            "type": "string",
                                            "const": "missing"
                                          },
                                          "reason": {
                                            "type": "string",
                                            "enum": [
                                              "not-applicable",
                                              "not-yet-calibrated",
                                              "legacy-import",
                                              "processor-omitted"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "status",
                                          "reason"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "applicationId",
                                  "taxonomy",
                                  "value",
                                  "proposedValue",
                                  "reviewState",
                                  "origin",
                                  "model",
                                  "confidence"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "applicationId": {
                                    "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)$"
                                  },
                                  "taxonomy": {
                                    "type": "object",
                                    "properties": {
                                      "templateId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      },
                                      "templateVersion": {
                                        "type": "string",
                                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                      },
                                      "facetId": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      }
                                    },
                                    "required": [
                                      "templateId",
                                      "templateVersion",
                                      "facetId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "value": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  },
                                  "proposedValue": {
                                    "type": "boolean"
                                  },
                                  "reviewState": {
                                    "type": "string",
                                    "enum": [
                                      "suggested",
                                      "accepted",
                                      "corrected",
                                      "contested",
                                      "rejected",
                                      "superseded"
                                    ]
                                  },
                                  "origin": {
                                    "type": "string",
                                    "const": "imported"
                                  },
                                  "importedFrom": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "taxonomyId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "taxonomyVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "foreignTerm": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 400
                                      },
                                      "mapping": {
                                        "type": "string",
                                        "enum": [
                                          "exact",
                                          "narrower",
                                          "broader",
                                          "unmapped"
                                        ]
                                      },
                                      "foreignReviewState": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      }
                                    },
                                    "required": [
                                      "system",
                                      "taxonomyId",
                                      "taxonomyVersion",
                                      "foreignTerm",
                                      "mapping",
                                      "foreignReviewState"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "confidence": {
                                    "type": "object",
                                    "properties": {
                                      "statedBy": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "scale": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "statedValue": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "statedBy",
                                      "scale",
                                      "statedValue"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "applicationId",
                                  "taxonomy",
                                  "value",
                                  "proposedValue",
                                  "reviewState",
                                  "origin",
                                  "importedFrom",
                                  "confidence"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "channelReadings": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "face",
                                  "gaze",
                                  "voice",
                                  "breath",
                                  "posture",
                                  "gesture",
                                  "movement",
                                  "language",
                                  "silence",
                                  "spacing",
                                  "missing-unavailable"
                                ]
                              },
                              "availability": {
                                "type": "string",
                                "enum": [
                                  "available",
                                  "missing",
                                  "occluded",
                                  "unreliable",
                                  "rights-restricted",
                                  "unavailable"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "channel",
                              "availability"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rowCells": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "row": {
                                "type": "string",
                                "enum": [
                                  "channel-use",
                                  "context",
                                  "camera",
                                  "edit",
                                  "sound",
                                  "animation-game-state"
                                ]
                              },
                              "state": {
                                "type": "string",
                                "enum": [
                                  "observed",
                                  "interpretation",
                                  "unknown",
                                  "disagreement",
                                  "counterexample",
                                  "unavailable",
                                  "forbidden"
                                ]
                              },
                              "availability": {
                                "type": "string",
                                "enum": [
                                  "available",
                                  "missing",
                                  "occluded",
                                  "unreliable",
                                  "rights-restricted",
                                  "unavailable"
                                ]
                              },
                              "readings": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "reviewerId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "value": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    },
                                    "reasoning": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 4000
                                    }
                                  },
                                  "required": [
                                    "reviewerId",
                                    "value"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "row",
                              "state",
                              "availability",
                              "readings"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "collectionId",
                        "anchorId",
                        "role",
                        "inclusionReason",
                        "alignmentPoint",
                        "facetApplications",
                        "channelReadings",
                        "rowCells"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "instance"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/collections/{collectionId}/blind-observation": {
      "post": {
        "operationId": "recordAtlasBlindObservation",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "templateId": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "templateVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "displayName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "comparisonQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionCriteria": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusionCriteria": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blindObservationRequired": {
                          "type": "boolean"
                        },
                        "blindObservationRecordedBy": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "normalization": {
                          "type": "object",
                          "properties": {
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "relevanceRationale": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "dimension",
                            "relevanceRationale"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "templateId",
                        "templateVersion",
                        "displayName",
                        "comparisonQuestion",
                        "inclusionCriteria",
                        "exclusionCriteria",
                        "blindObservationRequired",
                        "blindObservationRecordedBy"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/atlas/collections/{collectionId}/comparison": {
      "post": {
        "operationId": "readAtlasComparison",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "filters": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "dimension": {
                          "type": "string",
                          "enum": [
                            "context",
                            "function",
                            "regulation",
                            "intensity",
                            "time",
                            "relationship",
                            "genre",
                            "culture",
                            "medium",
                            "style",
                            "channel",
                            "synthetic-status",
                            "review",
                            "missing-context"
                          ]
                        },
                        "criterion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "undecided": {
                          "type": "string",
                          "enum": [
                            "include",
                            "exclude",
                            "separate-bucket"
                          ]
                        },
                        "matchValues": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "attributionSource": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "dimension",
                        "criterion",
                        "undecided",
                        "matchValues"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "interpretations": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "community",
                            "model",
                            "learner"
                          ]
                        },
                        "summary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        }
                      },
                      "required": [
                        "id",
                        "source",
                        "summary"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "templateId": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "templateVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "displayName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "comparisonQuestion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "inclusionCriteria": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "exclusionCriteria": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blindObservationRequired": {
                          "type": "boolean"
                        },
                        "blindObservationRecordedBy": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "normalization": {
                          "type": "object",
                          "properties": {
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "relevanceRationale": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "dimension",
                            "relevanceRationale"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "templateId",
                        "templateVersion",
                        "displayName",
                        "comparisonQuestion",
                        "inclusionCriteria",
                        "exclusionCriteria",
                        "blindObservationRequired",
                        "blindObservationRecordedBy"
                      ],
                      "additionalProperties": false
                    },
                    "template": {
                      "type": "object",
                      "properties": {
                        "templateId": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "version": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "subject": {
                          "type": "string",
                          "minLength": 1
                        },
                        "displayName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "owner": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "declaredQuestionTypes": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "facetSchema": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "facetId": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1
                              },
                              "description": {
                                "type": "string",
                                "minLength": 1
                              },
                              "valueMode": {
                                "type": "string",
                                "enum": [
                                  "bounded",
                                  "reviewed-extensible",
                                  "open"
                                ]
                              },
                              "allowedValues": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              }
                            },
                            "required": [
                              "facetId",
                              "label",
                              "description",
                              "valueMode",
                              "allowedValues"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "evidenceChannels": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "face",
                              "gaze",
                              "voice",
                              "breath",
                              "posture",
                              "gesture",
                              "movement",
                              "language",
                              "silence",
                              "spacing",
                              "missing-unavailable"
                            ]
                          }
                        },
                        "comparisonProtocol": {
                          "type": "object",
                          "properties": {
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1
                            },
                            "comparedDimensions": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "notes": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "alignmentBasis",
                            "comparedDimensions"
                          ],
                          "additionalProperties": false
                        },
                        "practiceSuggestions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "safetyNotes": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "applicability": {
                          "type": "object",
                          "properties": {
                            "sourceTypes": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "film",
                                  "video",
                                  "game",
                                  "document",
                                  "image",
                                  "audio",
                                  "3d-scene"
                                ]
                              }
                            },
                            "traditions": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "limitations": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              }
                            }
                          },
                          "required": [
                            "sourceTypes",
                            "traditions",
                            "limitations"
                          ],
                          "additionalProperties": false
                        },
                        "isContextualExemplar": {
                          "type": "boolean",
                          "const": true
                        }
                      },
                      "required": [
                        "templateId",
                        "version",
                        "subject",
                        "displayName",
                        "owner",
                        "declaredQuestionTypes",
                        "facetSchema",
                        "evidenceChannels",
                        "comparisonProtocol",
                        "practiceSuggestions",
                        "safetyNotes",
                        "applicability",
                        "isContextualExemplar"
                      ],
                      "additionalProperties": false
                    },
                    "comparisonQuestion": {
                      "type": "string"
                    },
                    "included": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instance": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "collectionId": {
                                "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)$"
                              },
                              "anchorId": {
                                "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)$"
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "example",
                                  "counterexample"
                                ]
                              },
                              "inclusionReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "alignmentPoint": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 400
                              },
                              "facetApplications": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "applicationId": {
                                          "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)$"
                                        },
                                        "taxonomy": {
                                          "type": "object",
                                          "properties": {
                                            "templateId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            },
                                            "templateVersion": {
                                              "type": "string",
                                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                            },
                                            "facetId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            }
                                          },
                                          "required": [
                                            "templateId",
                                            "templateVersion",
                                            "facetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 400
                                        },
                                        "proposedValue": {
                                          "type": "boolean"
                                        },
                                        "reviewState": {
                                          "type": "string",
                                          "enum": [
                                            "suggested",
                                            "accepted",
                                            "corrected",
                                            "contested",
                                            "rejected",
                                            "superseded"
                                          ]
                                        },
                                        "origin": {
                                          "type": "string",
                                          "const": "human-applied"
                                        },
                                        "appliedBy": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "confidence": {
                                          "type": "string",
                                          "enum": [
                                            "certain",
                                            "probable",
                                            "possible",
                                            "uncertain"
                                          ]
                                        },
                                        "note": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "applicationId",
                                        "taxonomy",
                                        "value",
                                        "proposedValue",
                                        "reviewState",
                                        "origin",
                                        "appliedBy",
                                        "confidence"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "applicationId": {
                                          "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)$"
                                        },
                                        "taxonomy": {
                                          "type": "object",
                                          "properties": {
                                            "templateId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            },
                                            "templateVersion": {
                                              "type": "string",
                                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                            },
                                            "facetId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            }
                                          },
                                          "required": [
                                            "templateId",
                                            "templateVersion",
                                            "facetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 400
                                        },
                                        "proposedValue": {
                                          "type": "boolean"
                                        },
                                        "reviewState": {
                                          "type": "string",
                                          "enum": [
                                            "suggested",
                                            "accepted",
                                            "corrected",
                                            "contested",
                                            "rejected",
                                            "superseded"
                                          ]
                                        },
                                        "origin": {
                                          "type": "string",
                                          "const": "model-suggested"
                                        },
                                        "model": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "version": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "version"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "confidence": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "status": {
                                                  "type": "string",
                                                  "const": "calibrated"
                                                },
                                                "value": {
                                                  "type": "number",
                                                  "minimum": 0,
                                                  "maximum": 1
                                                },
                                                "calibration": {
                                                  "type": "object",
                                                  "properties": {
                                                    "method": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 120
                                                    },
                                                    "calibrationSetId": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 200
                                                    },
                                                    "calibrationSetVersion": {
                                                      "type": "string",
                                                      "minLength": 1,
                                                      "maxLength": 80
                                                    },
                                                    "validatedAt": {
                                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                                    }
                                                  },
                                                  "required": [
                                                    "method",
                                                    "calibrationSetId",
                                                    "calibrationSetVersion",
                                                    "validatedAt"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "interval": {
                                                  "type": "object",
                                                  "properties": {
                                                    "lower": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "upper": {
                                                      "type": "number",
                                                      "minimum": 0,
                                                      "maximum": 1
                                                    },
                                                    "coverage": {
                                                      "type": "number",
                                                      "exclusiveMinimum": 0,
                                                      "exclusiveMaximum": 1
                                                    }
                                                  },
                                                  "required": [
                                                    "lower",
                                                    "upper",
                                                    "coverage"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                "applicabilityBoundary": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 1000
                                                }
                                              },
                                              "required": [
                                                "status",
                                                "value",
                                                "calibration",
                                                "interval",
                                                "applicabilityBoundary"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "status": {
                                                  "type": "string",
                                                  "const": "uncalibrated"
                                                },
                                                "rawScore": {
                                                  "type": "number"
                                                },
                                                "scale": {
                                                  "type": "string",
                                                  "minLength": 1,
                                                  "maxLength": 200
                                                }
                                              },
                                              "required": [
                                                "status",
                                                "rawScore",
                                                "scale"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "status": {
                                                  "type": "string",
                                                  "const": "missing"
                                                },
                                                "reason": {
                                                  "type": "string",
                                                  "enum": [
                                                    "not-applicable",
                                                    "not-yet-calibrated",
                                                    "legacy-import",
                                                    "processor-omitted"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "status",
                                                "reason"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "applicationId",
                                        "taxonomy",
                                        "value",
                                        "proposedValue",
                                        "reviewState",
                                        "origin",
                                        "model",
                                        "confidence"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "applicationId": {
                                          "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)$"
                                        },
                                        "taxonomy": {
                                          "type": "object",
                                          "properties": {
                                            "templateId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            },
                                            "templateVersion": {
                                              "type": "string",
                                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                            },
                                            "facetId": {
                                              "type": "string",
                                              "pattern": "^[a-z][a-z0-9-]*$"
                                            }
                                          },
                                          "required": [
                                            "templateId",
                                            "templateVersion",
                                            "facetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "value": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 400
                                        },
                                        "proposedValue": {
                                          "type": "boolean"
                                        },
                                        "reviewState": {
                                          "type": "string",
                                          "enum": [
                                            "suggested",
                                            "accepted",
                                            "corrected",
                                            "contested",
                                            "rejected",
                                            "superseded"
                                          ]
                                        },
                                        "origin": {
                                          "type": "string",
                                          "const": "imported"
                                        },
                                        "importedFrom": {
                                          "type": "object",
                                          "properties": {
                                            "system": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "taxonomyId": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "taxonomyVersion": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            },
                                            "foreignTerm": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 400
                                            },
                                            "mapping": {
                                              "type": "string",
                                              "enum": [
                                                "exact",
                                                "narrower",
                                                "broader",
                                                "unmapped"
                                              ]
                                            },
                                            "foreignReviewState": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 80
                                            }
                                          },
                                          "required": [
                                            "system",
                                            "taxonomyId",
                                            "taxonomyVersion",
                                            "foreignTerm",
                                            "mapping",
                                            "foreignReviewState"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "confidence": {
                                          "type": "object",
                                          "properties": {
                                            "statedBy": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "scale": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            },
                                            "statedValue": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 200
                                            }
                                          },
                                          "required": [
                                            "statedBy",
                                            "scale",
                                            "statedValue"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "applicationId",
                                        "taxonomy",
                                        "value",
                                        "proposedValue",
                                        "reviewState",
                                        "origin",
                                        "importedFrom",
                                        "confidence"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                }
                              },
                              "channelReadings": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "channel": {
                                      "type": "string",
                                      "enum": [
                                        "face",
                                        "gaze",
                                        "voice",
                                        "breath",
                                        "posture",
                                        "gesture",
                                        "movement",
                                        "language",
                                        "silence",
                                        "spacing",
                                        "missing-unavailable"
                                      ]
                                    },
                                    "availability": {
                                      "type": "string",
                                      "enum": [
                                        "available",
                                        "missing",
                                        "occluded",
                                        "unreliable",
                                        "rights-restricted",
                                        "unavailable"
                                      ]
                                    },
                                    "note": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "channel",
                                    "availability"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "rowCells": {
                                "maxItems": 6,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "row": {
                                      "type": "string",
                                      "enum": [
                                        "channel-use",
                                        "context",
                                        "camera",
                                        "edit",
                                        "sound",
                                        "animation-game-state"
                                      ]
                                    },
                                    "state": {
                                      "type": "string",
                                      "enum": [
                                        "observed",
                                        "interpretation",
                                        "unknown",
                                        "disagreement",
                                        "counterexample",
                                        "unavailable",
                                        "forbidden"
                                      ]
                                    },
                                    "availability": {
                                      "type": "string",
                                      "enum": [
                                        "available",
                                        "missing",
                                        "occluded",
                                        "unreliable",
                                        "rights-restricted",
                                        "unavailable"
                                      ]
                                    },
                                    "readings": {
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "reviewerId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "value": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 2000
                                          },
                                          "reasoning": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 4000
                                          }
                                        },
                                        "required": [
                                          "reviewerId",
                                          "value"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "row",
                                    "state",
                                    "availability",
                                    "readings"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "collectionId",
                              "anchorId",
                              "role",
                              "inclusionReason",
                              "alignmentPoint",
                              "facetApplications",
                              "channelReadings",
                              "rowCells"
                            ],
                            "additionalProperties": false
                          },
                          "facets": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "facetId": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                },
                                "origin": {
                                  "type": "string",
                                  "enum": [
                                    "human-applied",
                                    "model-suggested",
                                    "imported"
                                  ]
                                },
                                "source": {
                                  "type": "string"
                                },
                                "confidence": {
                                  "type": "string"
                                },
                                "taxonomy": {
                                  "type": "string"
                                },
                                "reviewState": {
                                  "type": "string",
                                  "enum": [
                                    "suggested",
                                    "accepted",
                                    "corrected",
                                    "contested",
                                    "rejected",
                                    "superseded"
                                  ]
                                },
                                "limitations": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "standing": {
                                  "type": "string",
                                  "enum": [
                                    "recorded",
                                    "suggested"
                                  ]
                                }
                              },
                              "required": [
                                "facetId",
                                "value",
                                "origin",
                                "source",
                                "confidence",
                                "taxonomy",
                                "reviewState",
                                "limitations",
                                "standing"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "instance",
                          "facets"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "excludedInstanceIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "exclusionStatements": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "effectsOnArgument": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "undecided": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "instanceId": {
                            "type": "string"
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "instanceId",
                          "dimensions"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "readAcross": {
                      "type": "object",
                      "properties": {
                        "rows": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "row": {
                                "type": "string",
                                "enum": [
                                  "channel-use",
                                  "context",
                                  "camera",
                                  "edit",
                                  "sound",
                                  "animation-game-state"
                                ]
                              },
                              "comparability": {
                                "type": "string",
                                "enum": [
                                  "comparable",
                                  "partial",
                                  "not-comparable"
                                ]
                              },
                              "unreadableMemberIndices": {
                                "type": "array",
                                "items": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "agreement": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "standing": {
                                      "type": "string",
                                      "enum": [
                                        "unanimous",
                                        "majority",
                                        "split",
                                        "single-reader",
                                        "unread"
                                      ]
                                    },
                                    "reviewerCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "distinctReadingCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "modalReading": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "modalReviewerCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "standing",
                                    "reviewerCount",
                                    "distinctReadingCount",
                                    "modalReading",
                                    "modalReviewerCount"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "dissent": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "memberIndex": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "reviewerId": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    },
                                    "reasoning": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "unusable": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "memberIndex",
                                    "reviewerId",
                                    "value",
                                    "reasoning",
                                    "unusable"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "notices": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "row",
                              "comparability",
                              "unreadableMemberIndices",
                              "agreement",
                              "dissent",
                              "notices"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rowsWithoutCells": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "channel-use",
                              "context",
                              "camera",
                              "edit",
                              "sound",
                              "animation-game-state"
                            ]
                          }
                        },
                        "notComparableRows": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "channel-use",
                              "context",
                              "camera",
                              "edit",
                              "sound",
                              "animation-game-state"
                            ]
                          }
                        },
                        "notices": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "rows",
                        "rowsWithoutCells",
                        "notComparableRows",
                        "notices"
                      ],
                      "additionalProperties": false
                    },
                    "supportsComparisonClaim": {
                      "type": "boolean"
                    },
                    "counterexampleCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "blind": {
                      "type": "object",
                      "properties": {
                        "required": {
                          "type": "boolean"
                        },
                        "satisfied": {
                          "type": "boolean"
                        },
                        "withheldCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "visible": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "source": {
                                "type": "string",
                                "enum": [
                                  "community",
                                  "model",
                                  "learner"
                                ]
                              },
                              "summary": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              }
                            },
                            "required": [
                              "id",
                              "source",
                              "summary"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "required",
                        "satisfied",
                        "withheldCount",
                        "visible"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "collection",
                    "template",
                    "comparisonQuestion",
                    "included",
                    "excludedInstanceIds",
                    "exclusionStatements",
                    "effectsOnArgument",
                    "undecided",
                    "readAcross",
                    "supportsComparisonClaim",
                    "counterexampleCount",
                    "blind"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/outcome-evidence": {
      "post": {
        "operationId": "recordOutcomeEvidence",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "decisionId": {
                    "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)$"
                  },
                  "sourceKind": {
                    "type": "string",
                    "enum": [
                      "playtest",
                      "screening",
                      "review",
                      "release"
                    ]
                  },
                  "intendedEffect": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "result": {
                    "type": "string",
                    "enum": [
                      "intended-effect-observed",
                      "partial-effect",
                      "no-effect",
                      "opposite-effect",
                      "inconclusive"
                    ]
                  },
                  "interpretation": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "uncertainty": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "anchorIds": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "consentEvidenceRef": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1024
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "rights": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "basisId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "expiresAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "territories": {
                            "minItems": 1,
                            "maxItems": 300,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2
                            }
                          }
                        },
                        "required": [
                          "basisId",
                          "expiresAt",
                          "territories"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "participants": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    }
                  },
                  "consents": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "party": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "scope": {
                          "type": "string",
                          "enum": [
                            "analysis",
                            "sharing",
                            "teaching",
                            "publication",
                            "model-training"
                          ]
                        },
                        "grantedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "evidenceRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1024
                        },
                        "revokedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "minor": {
                          "default": false,
                          "type": "boolean"
                        },
                        "guardian": {
                          "type": "object",
                          "properties": {
                            "guardianName": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "relationship": {
                              "type": "string",
                              "enum": [
                                "parent",
                                "legal-guardian",
                                "authorized-institution"
                              ]
                            },
                            "authorityEvidenceRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            }
                          },
                          "required": [
                            "guardianName",
                            "relationship",
                            "authorityEvidenceRef"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "party",
                        "scope",
                        "grantedAt",
                        "evidenceRef",
                        "revokedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "attributed": {
                    "type": "boolean"
                  },
                  "individualRecordCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "reportedCohortSizes": {
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "directIdentifierFields": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  },
                  "capturedAgainstVersion": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "intendedEffectStatedForVersion": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "retention": {
                    "type": "object",
                    "properties": {
                      "participantDataDays": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 3650
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "aggregateDays": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 3650
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "decisionId",
                  "sourceKind",
                  "intendedEffect",
                  "result",
                  "interpretation",
                  "uncertainty",
                  "anchorIds",
                  "consentEvidenceRef",
                  "territory",
                  "rights",
                  "participants",
                  "consents",
                  "attributed",
                  "individualRecordCount",
                  "reportedCohortSizes",
                  "directIdentifierFields",
                  "capturedAgainstVersion",
                  "intendedEffectStatedForVersion"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "outcome": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "sourceKind": {
                          "type": "string",
                          "enum": [
                            "playtest",
                            "screening",
                            "review",
                            "release"
                          ]
                        },
                        "consentEvidenceRef": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "result": {
                          "type": "string",
                          "enum": [
                            "intended-effect-observed",
                            "partial-effect",
                            "no-effect",
                            "opposite-effect",
                            "inconclusive"
                          ]
                        },
                        "interpretation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "uncertainty": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "linkedDecisionId": {
                          "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)$"
                        },
                        "epistemicIdentity": {
                          "type": "string",
                          "const": "practice-result"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "intendedEffect",
                        "sourceKind",
                        "consentEvidenceRef",
                        "anchorIds",
                        "result",
                        "interpretation",
                        "uncertainty",
                        "linkedDecisionId",
                        "epistemicIdentity"
                      ],
                      "additionalProperties": false
                    },
                    "verdict": {
                      "type": "string",
                      "enum": [
                        "supported",
                        "contradicted",
                        "unresolved"
                      ]
                    },
                    "anchors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "anchorId": {
                            "type": "string"
                          },
                          "target": {
                            "type": "string",
                            "enum": [
                              "production-artifact",
                              "session",
                              "studied-source"
                            ]
                          }
                        },
                        "required": [
                          "anchorId",
                          "target"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "reviews": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reviewId": {
                            "type": "string"
                          },
                          "trigger": {
                            "type": "string",
                            "enum": [
                              "contradicts-stated-intent",
                              "conflicts-with-track-record"
                            ]
                          },
                          "subject": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "reason": {
                            "type": "string"
                          },
                          "alternatives": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "ownerUserId": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "open",
                              "resolved"
                            ]
                          },
                          "newVerdict": {
                            "type": "string",
                            "enum": [
                              "supported",
                              "contradicted",
                              "unresolved"
                            ]
                          },
                          "priorConclusion": {
                            "type": "object",
                            "properties": {
                              "verdict": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "supported",
                                      "contradicted",
                                      "unresolved"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "summary": {
                                "type": "string"
                              },
                              "entries": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "decisionId": {
                                      "type": "string"
                                    },
                                    "outcomeId": {
                                      "type": "string"
                                    },
                                    "use": {
                                      "type": "string"
                                    },
                                    "projectContext": {
                                      "type": "string"
                                    },
                                    "intendedEffect": {
                                      "type": "string"
                                    },
                                    "evidenceAnchorIds": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "result": {
                                      "type": "string",
                                      "enum": [
                                        "supported",
                                        "contradicted",
                                        "unresolved"
                                      ]
                                    },
                                    "limitations": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "decisionId",
                                    "outcomeId",
                                    "use",
                                    "projectContext",
                                    "intendedEffect",
                                    "evidenceAnchorIds",
                                    "result",
                                    "limitations"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "verdict",
                              "summary",
                              "entries"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "reviewId",
                          "trigger",
                          "subject",
                          "reason",
                          "alternatives",
                          "ownerUserId",
                          "state",
                          "newVerdict",
                          "priorConclusion"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unchallengedPrincipleIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "retention": {
                      "type": "object",
                      "properties": {
                        "participantDataDays": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "aggregateDays": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "participantDataDays",
                        "aggregateDays"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "outcome",
                    "verdict",
                    "anchors",
                    "reviews",
                    "unchallengedPrincipleIds",
                    "retention"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/outcome-evidence": {
      "get": {
        "operationId": "listOutcomeEvidence",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "outcomes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "intendedEffect": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "sourceKind": {
                            "type": "string",
                            "enum": [
                              "playtest",
                              "screening",
                              "review",
                              "release"
                            ]
                          },
                          "consentEvidenceRef": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "result": {
                            "type": "string",
                            "enum": [
                              "intended-effect-observed",
                              "partial-effect",
                              "no-effect",
                              "opposite-effect",
                              "inconclusive"
                            ]
                          },
                          "interpretation": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "uncertainty": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "linkedDecisionId": {
                            "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)$"
                          },
                          "epistemicIdentity": {
                            "type": "string",
                            "const": "practice-result"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "intendedEffect",
                          "sourceKind",
                          "consentEvidenceRef",
                          "anchorIds",
                          "result",
                          "interpretation",
                          "uncertainty",
                          "linkedDecisionId",
                          "epistemicIdentity"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "outcomes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-exercises/{exerciseId}/mastery-evidence": {
      "post": {
        "operationId": "readMasteryEvidence",
        "parameters": [
          {
            "name": "exerciseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "214bd88d-a9d6-46b2-a89f-5850aa9b6f45"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "learnerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "judgements": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "attemptId": {
                          "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)$"
                        },
                        "met": {
                          "type": "boolean"
                        },
                        "level": {
                          "type": "string",
                          "enum": [
                            "novice",
                            "developing",
                            "proficient",
                            "advanced"
                          ]
                        }
                      },
                      "required": [
                        "attemptId",
                        "met",
                        "level"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "learnerUserId",
                  "judgements"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "cells": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "metisConceptRef": {
                            "type": "string"
                          },
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "factual-knowledge",
                              "perceptual-discrimination",
                              "analysis-quality",
                              "production-application",
                              "reflection",
                              "repeated-performance"
                            ]
                          },
                          "records": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "recordId": {
                                  "type": "string"
                                },
                                "learnerId": {
                                  "type": "string"
                                },
                                "metisConceptRef": {
                                  "type": "string"
                                },
                                "dimension": {
                                  "type": "string",
                                  "enum": [
                                    "factual-knowledge",
                                    "perceptual-discrimination",
                                    "analysis-quality",
                                    "production-application",
                                    "reflection",
                                    "repeated-performance"
                                  ]
                                },
                                "level": {
                                  "type": "string",
                                  "enum": [
                                    "novice",
                                    "developing",
                                    "proficient",
                                    "advanced"
                                  ]
                                },
                                "uncertainty": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "moderate",
                                    "high"
                                  ]
                                },
                                "assessor": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "system"
                                        },
                                        "algorithm": {
                                          "type": "string"
                                        },
                                        "algorithmVersion": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "algorithm",
                                        "algorithmVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "exercise-attempt",
                                        "assessment",
                                        "portfolio-review",
                                        "spaced-recall",
                                        "teach-back",
                                        "first-viewing"
                                      ]
                                    },
                                    "sourceId": {
                                      "type": "string"
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "rubricVersion": {
                                      "type": "string"
                                    },
                                    "anchorIds": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "sourceId",
                                    "sourceVersion",
                                    "anchorIds"
                                  ],
                                  "additionalProperties": false
                                },
                                "observationCount": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "distinctSessionCount": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "recordedAt": {
                                  "type": "string"
                                },
                                "metisMasteryRecordRef": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "recordId",
                                "learnerId",
                                "metisConceptRef",
                                "dimension",
                                "level",
                                "uncertainty",
                                "assessor",
                                "provenance",
                                "observationCount",
                                "distinctSessionCount",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "latestLevel": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "novice",
                                  "developing",
                                  "proficient",
                                  "advanced"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "latestUncertainty": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "low",
                                  "moderate",
                                  "high"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "latestIsSystemOnly": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "metisConceptRef",
                          "dimension",
                          "records",
                          "latestLevel",
                          "latestUncertainty",
                          "latestIsSystemOnly"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unjudgedAttemptIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "unassessableAttempts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attemptId": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "attemptId",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "attemptCount": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "staleRecords": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "recordId": {
                            "type": "string"
                          },
                          "learnerId": {
                            "type": "string"
                          },
                          "metisConceptRef": {
                            "type": "string"
                          },
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "factual-knowledge",
                              "perceptual-discrimination",
                              "analysis-quality",
                              "production-application",
                              "reflection",
                              "repeated-performance"
                            ]
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "novice",
                              "developing",
                              "proficient",
                              "advanced"
                            ]
                          },
                          "uncertainty": {
                            "type": "string",
                            "enum": [
                              "low",
                              "moderate",
                              "high"
                            ]
                          },
                          "assessor": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "system"
                                  },
                                  "algorithm": {
                                    "type": "string"
                                  },
                                  "algorithmVersion": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "algorithm",
                                  "algorithmVersion"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "human"
                                  },
                                  "userId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "userId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "provenance": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "exercise-attempt",
                                  "assessment",
                                  "portfolio-review",
                                  "spaced-recall",
                                  "teach-back",
                                  "first-viewing"
                                ]
                              },
                              "sourceId": {
                                "type": "string"
                              },
                              "sourceVersion": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "rubricVersion": {
                                "type": "string"
                              },
                              "anchorIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "kind",
                              "sourceId",
                              "sourceVersion",
                              "anchorIds"
                            ],
                            "additionalProperties": false
                          },
                          "observationCount": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "distinctSessionCount": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "recordedAt": {
                            "type": "string"
                          },
                          "metisMasteryRecordRef": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "recordId",
                          "learnerId",
                          "metisConceptRef",
                          "dimension",
                          "level",
                          "uncertainty",
                          "assessor",
                          "provenance",
                          "observationCount",
                          "distinctSessionCount",
                          "recordedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "withoutHumanReview": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "metisConceptRef": {
                            "type": "string"
                          },
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "factual-knowledge",
                              "perceptual-discrimination",
                              "analysis-quality",
                              "production-application",
                              "reflection",
                              "repeated-performance"
                            ]
                          },
                          "records": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "recordId": {
                                  "type": "string"
                                },
                                "learnerId": {
                                  "type": "string"
                                },
                                "metisConceptRef": {
                                  "type": "string"
                                },
                                "dimension": {
                                  "type": "string",
                                  "enum": [
                                    "factual-knowledge",
                                    "perceptual-discrimination",
                                    "analysis-quality",
                                    "production-application",
                                    "reflection",
                                    "repeated-performance"
                                  ]
                                },
                                "level": {
                                  "type": "string",
                                  "enum": [
                                    "novice",
                                    "developing",
                                    "proficient",
                                    "advanced"
                                  ]
                                },
                                "uncertainty": {
                                  "type": "string",
                                  "enum": [
                                    "low",
                                    "moderate",
                                    "high"
                                  ]
                                },
                                "assessor": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "system"
                                        },
                                        "algorithm": {
                                          "type": "string"
                                        },
                                        "algorithmVersion": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "algorithm",
                                        "algorithmVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "exercise-attempt",
                                        "assessment",
                                        "portfolio-review",
                                        "spaced-recall",
                                        "teach-back",
                                        "first-viewing"
                                      ]
                                    },
                                    "sourceId": {
                                      "type": "string"
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "rubricVersion": {
                                      "type": "string"
                                    },
                                    "anchorIds": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "sourceId",
                                    "sourceVersion",
                                    "anchorIds"
                                  ],
                                  "additionalProperties": false
                                },
                                "observationCount": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "distinctSessionCount": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "recordedAt": {
                                  "type": "string"
                                },
                                "metisMasteryRecordRef": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "recordId",
                                "learnerId",
                                "metisConceptRef",
                                "dimension",
                                "level",
                                "uncertainty",
                                "assessor",
                                "provenance",
                                "observationCount",
                                "distinctSessionCount",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "latestLevel": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "novice",
                                  "developing",
                                  "proficient",
                                  "advanced"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "latestUncertainty": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "low",
                                  "moderate",
                                  "high"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "latestIsSystemOnly": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "metisConceptRef",
                          "dimension",
                          "records",
                          "latestLevel",
                          "latestUncertainty",
                          "latestIsSystemOnly"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "uncertaintyByCell": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "metisConceptRef": {
                            "type": "string"
                          },
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "factual-knowledge",
                              "perceptual-discrimination",
                              "analysis-quality",
                              "production-application",
                              "reflection",
                              "repeated-performance"
                            ]
                          },
                          "uncertainty": {
                            "type": "string",
                            "enum": [
                              "low",
                              "moderate",
                              "high"
                            ]
                          }
                        },
                        "required": [
                          "metisConceptRef",
                          "dimension",
                          "uncertainty"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "cells",
                    "unjudgedAttemptIds",
                    "unassessableAttempts",
                    "attemptCount",
                    "staleRecords",
                    "withoutHumanReview",
                    "uncertaintyByCell"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-attempts/{attemptId}/notes": {
      "post": {
        "operationId": "writeFeedbackNote",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "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)$"
                  },
                  "anchorIds": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "body": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "visibility": {
                    "type": "string",
                    "enum": [
                      "author-and-learner",
                      "learner-and-teachers",
                      "cohort"
                    ]
                  }
                },
                "required": [
                  "anchorIds",
                  "body",
                  "visibility"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "note": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "attemptId": {
                          "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)$"
                        },
                        "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)$"
                        },
                        "authorUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "authorRole": {
                          "type": "string",
                          "enum": [
                            "teacher",
                            "mentor",
                            "peer",
                            "self"
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "body": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "givenAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "visibility": {
                          "type": "string",
                          "enum": [
                            "author-and-learner",
                            "learner-and-teachers",
                            "cohort"
                          ]
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "published",
                                "flagged",
                                "withheld",
                                "removed"
                              ]
                            },
                            "decidedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "state",
                            "decidedByUserId",
                            "decidedAt",
                            "reason"
                          ],
                          "additionalProperties": false
                        },
                        "disposition": {
                          "type": "object",
                          "properties": {
                            "decision": {
                              "type": "string",
                              "enum": [
                                "accepted",
                                "declined",
                                "deferred"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "decision",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "attemptId",
                        "authorUserId",
                        "authorRole",
                        "anchorIds",
                        "body",
                        "givenAt",
                        "visibility"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "readAttemptFeedback",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          },
          {
            "name": "assignmentId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "attemptId": {
                            "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)$"
                          },
                          "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)$"
                          },
                          "authorUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "authorRole": {
                            "type": "string",
                            "enum": [
                              "teacher",
                              "mentor",
                              "peer",
                              "self"
                            ]
                          },
                          "anchorIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "body": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "givenAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "visibility": {
                            "type": "string",
                            "enum": [
                              "author-and-learner",
                              "learner-and-teachers",
                              "cohort"
                            ]
                          },
                          "moderation": {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "enum": [
                                  "published",
                                  "flagged",
                                  "withheld",
                                  "removed"
                                ]
                              },
                              "decidedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "decidedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "state",
                              "decidedByUserId",
                              "decidedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          },
                          "disposition": {
                            "type": "object",
                            "properties": {
                              "decision": {
                                "type": "string",
                                "enum": [
                                  "accepted",
                                  "declined",
                                  "deferred"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "decidedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "decision",
                              "decidedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "attemptId",
                          "authorUserId",
                          "authorRole",
                          "anchorIds",
                          "body",
                          "givenAt",
                          "visibility"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "tombstones": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "noteId": {
                            "type": "string"
                          },
                          "authorRole": {
                            "type": "string",
                            "enum": [
                              "teacher",
                              "mentor",
                              "peer",
                              "self"
                            ]
                          },
                          "givenAt": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "published",
                              "flagged",
                              "withheld",
                              "removed"
                            ]
                          },
                          "moderatedAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "noteId",
                          "authorRole",
                          "givenAt",
                          "state",
                          "moderatedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "loop": {
                      "type": "object",
                      "properties": {
                        "dispositioned": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "openNoteIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "withheldNoteIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "tombstones": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "noteId": {
                                "type": "string"
                              },
                              "authorRole": {
                                "type": "string",
                                "enum": [
                                  "teacher",
                                  "mentor",
                                  "peer",
                                  "self"
                                ]
                              },
                              "givenAt": {
                                "type": "string"
                              },
                              "state": {
                                "type": "string",
                                "enum": [
                                  "published",
                                  "flagged",
                                  "withheld",
                                  "removed"
                                ]
                              },
                              "moderatedAt": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "noteId",
                              "authorRole",
                              "givenAt",
                              "state",
                              "moderatedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "closed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "dispositioned",
                        "openNoteIds",
                        "withheldNoteIds",
                        "tombstones",
                        "closed"
                      ],
                      "additionalProperties": false
                    },
                    "openReviews": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assignmentId": {
                            "type": "string"
                          },
                          "attemptId": {
                            "type": "string"
                          },
                          "reviewerId": {
                            "type": "string"
                          },
                          "reviewerRole": {
                            "type": "string",
                            "enum": [
                              "teacher",
                              "mentor",
                              "peer",
                              "self"
                            ]
                          },
                          "assignedAt": {
                            "type": "string"
                          },
                          "cancelledAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assignmentId",
                          "attemptId",
                          "reviewerId",
                          "reviewerRole",
                          "assignedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "cancelledReviews": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assignmentId": {
                            "type": "string"
                          },
                          "attemptId": {
                            "type": "string"
                          },
                          "reviewerId": {
                            "type": "string"
                          },
                          "reviewerRole": {
                            "type": "string",
                            "enum": [
                              "teacher",
                              "mentor",
                              "peer",
                              "self"
                            ]
                          },
                          "assignedAt": {
                            "type": "string"
                          },
                          "cancelledAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assignmentId",
                          "attemptId",
                          "reviewerId",
                          "reviewerRole",
                          "assignedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "notes",
                    "tombstones",
                    "loop",
                    "openReviews",
                    "cancelledReviews"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/feedback-notes/{noteId}/moderation": {
      "post": {
        "operationId": "moderateFeedbackNote",
        "parameters": [
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "54dc09f3-13c8-4982-ac53-14a6b6cf2f15"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "published",
                      "flagged",
                      "withheld",
                      "removed"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "required": [
                  "state",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "note": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "attemptId": {
                          "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)$"
                        },
                        "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)$"
                        },
                        "authorUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "authorRole": {
                          "type": "string",
                          "enum": [
                            "teacher",
                            "mentor",
                            "peer",
                            "self"
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "body": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "givenAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "visibility": {
                          "type": "string",
                          "enum": [
                            "author-and-learner",
                            "learner-and-teachers",
                            "cohort"
                          ]
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "published",
                                "flagged",
                                "withheld",
                                "removed"
                              ]
                            },
                            "decidedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "state",
                            "decidedByUserId",
                            "decidedAt",
                            "reason"
                          ],
                          "additionalProperties": false
                        },
                        "disposition": {
                          "type": "object",
                          "properties": {
                            "decision": {
                              "type": "string",
                              "enum": [
                                "accepted",
                                "declined",
                                "deferred"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "decision",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "attemptId",
                        "authorUserId",
                        "authorRole",
                        "anchorIds",
                        "body",
                        "givenAt",
                        "visibility"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/feedback-notes/{noteId}/visibility": {
      "post": {
        "operationId": "changeNoteVisibility",
        "parameters": [
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "54dc09f3-13c8-4982-ac53-14a6b6cf2f15"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "requested": {
                    "type": "string",
                    "enum": [
                      "author-and-learner",
                      "learner-and-teachers",
                      "cohort"
                    ]
                  },
                  "authorAgrees": {
                    "type": "boolean"
                  },
                  "learnerAgrees": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "requested"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "note": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "attemptId": {
                          "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)$"
                        },
                        "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)$"
                        },
                        "authorUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "authorRole": {
                          "type": "string",
                          "enum": [
                            "teacher",
                            "mentor",
                            "peer",
                            "self"
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "body": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "givenAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "visibility": {
                          "type": "string",
                          "enum": [
                            "author-and-learner",
                            "learner-and-teachers",
                            "cohort"
                          ]
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "published",
                                "flagged",
                                "withheld",
                                "removed"
                              ]
                            },
                            "decidedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "state",
                            "decidedByUserId",
                            "decidedAt",
                            "reason"
                          ],
                          "additionalProperties": false
                        },
                        "disposition": {
                          "type": "object",
                          "properties": {
                            "decision": {
                              "type": "string",
                              "enum": [
                                "accepted",
                                "declined",
                                "deferred"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "decision",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "attemptId",
                        "authorUserId",
                        "authorRole",
                        "anchorIds",
                        "body",
                        "givenAt",
                        "visibility"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/feedback-notes/{noteId}/disposition": {
      "post": {
        "operationId": "dispositionFeedbackNote",
        "parameters": [
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "54dc09f3-13c8-4982-ac53-14a6b6cf2f15"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "accepted",
                      "declined",
                      "deferred"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "required": [
                  "decision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "note": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "attemptId": {
                          "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)$"
                        },
                        "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)$"
                        },
                        "authorUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "authorRole": {
                          "type": "string",
                          "enum": [
                            "teacher",
                            "mentor",
                            "peer",
                            "self"
                          ]
                        },
                        "anchorIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "body": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "givenAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "visibility": {
                          "type": "string",
                          "enum": [
                            "author-and-learner",
                            "learner-and-teachers",
                            "cohort"
                          ]
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "state": {
                              "type": "string",
                              "enum": [
                                "published",
                                "flagged",
                                "withheld",
                                "removed"
                              ]
                            },
                            "decidedByUserId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "state",
                            "decidedByUserId",
                            "decidedAt",
                            "reason"
                          ],
                          "additionalProperties": false
                        },
                        "disposition": {
                          "type": "object",
                          "properties": {
                            "decision": {
                              "type": "string",
                              "enum": [
                                "accepted",
                                "declined",
                                "deferred"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "decidedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "decision",
                            "decidedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "attemptId",
                        "authorUserId",
                        "authorRole",
                        "anchorIds",
                        "body",
                        "givenAt",
                        "visibility"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-attempts/{attemptId}/withdraw-sharing": {
      "post": {
        "operationId": "withdrawAttemptSharing",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "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)$"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "cancelled": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assignmentId": {
                            "type": "string"
                          },
                          "attemptId": {
                            "type": "string"
                          },
                          "reviewerId": {
                            "type": "string"
                          },
                          "reviewerRole": {
                            "type": "string",
                            "enum": [
                              "teacher",
                              "mentor",
                              "peer",
                              "self"
                            ]
                          },
                          "assignedAt": {
                            "type": "string"
                          },
                          "cancelledAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "assignmentId",
                          "attemptId",
                          "reviewerId",
                          "reviewerRole",
                          "assignedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "existingNoteIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "cancelled",
                    "existingNoteIds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}/cohort-report": {
      "get": {
        "operationId": "readCohortReport",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          },
          {
            "name": "minimumGroupSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "properties": {
                        "cohortId": {
                          "type": "string"
                        },
                        "minimumGroupSize": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "pseudonymScheme": {
                          "type": "string"
                        },
                        "generatedAt": {
                          "type": "string"
                        },
                        "expiresAt": {
                          "type": "string"
                        },
                        "groupKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "categoryKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "cells": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "groupKey": {
                                "type": "string"
                              },
                              "categoryKey": {
                                "type": "string"
                              },
                              "count": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "withheldReason": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "enum": [
                                      "below-minimum-group",
                                      "complementary"
                                    ]
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "groupKey",
                              "categoryKey",
                              "count",
                              "withheldReason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "groupTotals": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "categoryTotals": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "excludedForConsentCount": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "countedLearnerCount": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "cohortId",
                        "minimumGroupSize",
                        "pseudonymScheme",
                        "generatedAt",
                        "expiresAt",
                        "groupKeys",
                        "categoryKeys",
                        "cells",
                        "groupTotals",
                        "categoryTotals",
                        "excludedForConsentCount",
                        "countedLearnerCount"
                      ],
                      "additionalProperties": false
                    },
                    "rosterSize": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "excludedForConsent": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "report",
                    "rosterSize",
                    "excludedForConsent"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/institutional-controls": {
      "get": {
        "operationId": "readInstitutionalControls",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "controls": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "institutionId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "localProcessing": {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "local-only",
                                "prefer-local",
                                "platform"
                              ]
                            },
                            "permittedLanes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-local",
                                  "tenant-managed",
                                  "platform-shared",
                                  "third-party-provider"
                                ]
                              }
                            }
                          },
                          "required": [
                            "mode",
                            "permittedLanes"
                          ],
                          "additionalProperties": false
                        },
                        "retention": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "enum": [
                                  "learner-attempt",
                                  "learner-identity",
                                  "assessment-record",
                                  "cohort-analytics",
                                  "audit-record",
                                  "source-material",
                                  "study-artifact"
                                ]
                              },
                              "additionalProperties": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 36500
                              },
                              "required": [
                                "learner-attempt",
                                "learner-identity",
                                "assessment-record",
                                "cohort-analytics",
                                "audit-record",
                                "source-material",
                                "study-artifact"
                              ]
                            },
                            "legalHoldSuspendsDeletion": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "days",
                            "legalHoldSuspendsDeletion"
                          ],
                          "additionalProperties": false
                        },
                        "minors": {
                          "type": "object",
                          "properties": {
                            "minorsEnrolled": {
                              "type": "boolean"
                            },
                            "guardianConsentRequiredForExport": {
                              "type": "boolean"
                            },
                            "publicationOfMinorMaterial": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "minorsEnrolled",
                            "guardianConsentRequiredForExport",
                            "publicationOfMinorMaterial"
                          ],
                          "additionalProperties": false
                        },
                        "educatorAccess": {
                          "type": "object",
                          "properties": {
                            "grants": {
                              "maxItems": 8,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "scope": {
                                    "type": "string",
                                    "enum": [
                                      "submitted-attempt",
                                      "assessment-record",
                                      "cohort-aggregate",
                                      "roster-identity",
                                      "draft-attempt",
                                      "private-reflection",
                                      "unshared-study-artifact",
                                      "all-learner-data"
                                    ]
                                  },
                                  "purpose": {
                                    "type": "string",
                                    "enum": [
                                      "assess-submission",
                                      "give-feedback",
                                      "moderate-report",
                                      "support-accommodation",
                                      "investigate-integrity",
                                      "maintain-roster"
                                    ]
                                  },
                                  "subjectToLearnerSharing": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "scope",
                                  "purpose",
                                  "subjectToLearnerSharing"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "grants"
                          ],
                          "additionalProperties": false
                        },
                        "audit": {
                          "type": "object",
                          "properties": {
                            "auditedActions": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "tamperEvident": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "auditedActions",
                            "tamperEvident"
                          ],
                          "additionalProperties": false
                        },
                        "export": {
                          "type": "object",
                          "properties": {
                            "permissions": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "dataClass": {
                                    "type": "string",
                                    "enum": [
                                      "learner-attempt",
                                      "learner-identity",
                                      "assessment-record",
                                      "cohort-analytics",
                                      "audit-record",
                                      "source-material",
                                      "study-artifact"
                                    ]
                                  },
                                  "destinationRegion": {
                                    "type": "string",
                                    "pattern": "^[A-Z]{2}$"
                                  },
                                  "destinationLane": {
                                    "type": "string",
                                    "enum": [
                                      "institution-local",
                                      "tenant-managed",
                                      "platform-shared",
                                      "third-party-provider"
                                    ]
                                  }
                                },
                                "required": [
                                  "dataClass",
                                  "destinationRegion",
                                  "destinationLane"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "permissions"
                          ],
                          "additionalProperties": false
                        },
                        "accountClosure": {
                          "type": "object",
                          "properties": {
                            "dispositions": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "enum": [
                                  "learner-attempt",
                                  "learner-identity",
                                  "assessment-record",
                                  "cohort-analytics",
                                  "audit-record",
                                  "source-material",
                                  "study-artifact"
                                ]
                              },
                              "additionalProperties": {
                                "type": "string",
                                "enum": [
                                  "delete",
                                  "transfer-to-learner",
                                  "retain-under-hold",
                                  "retain-pseudonymized"
                                ]
                              },
                              "required": [
                                "learner-attempt",
                                "learner-identity",
                                "assessment-record",
                                "cohort-analytics",
                                "audit-record",
                                "source-material",
                                "study-artifact"
                              ]
                            }
                          },
                          "required": [
                            "dispositions"
                          ],
                          "additionalProperties": false
                        },
                        "dataResidency": {
                          "type": "object",
                          "properties": {
                            "allowedRegions": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              }
                            }
                          },
                          "required": [
                            "allowedRegions"
                          ],
                          "additionalProperties": false
                        },
                        "roleTemplates": {
                          "type": "object",
                          "properties": {
                            "templates": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "roleId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "scopes": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "submitted-attempt",
                                        "assessment-record",
                                        "cohort-aggregate",
                                        "roster-identity",
                                        "draft-attempt",
                                        "private-reflection",
                                        "unshared-study-artifact",
                                        "all-learner-data"
                                      ]
                                    }
                                  },
                                  "purpose": {
                                    "type": "string",
                                    "enum": [
                                      "assess-submission",
                                      "give-feedback",
                                      "moderate-report",
                                      "support-accommodation",
                                      "investigate-integrity",
                                      "maintain-roster"
                                    ]
                                  },
                                  "mayDelegate": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "roleId",
                                  "label",
                                  "scopes",
                                  "purpose",
                                  "mayDelegate"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "templates"
                          ],
                          "additionalProperties": false
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "reviewers": {
                              "maxItems": 3,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-staff",
                                  "platform-trust-and-safety",
                                  "peer-learner"
                                ]
                              }
                            },
                            "responseHours": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 720
                            },
                            "authorIsNotified": {
                              "type": "boolean"
                            },
                            "appealAvailable": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "reviewers",
                            "responseHours",
                            "authorIsNotified",
                            "appealAvailable"
                          ],
                          "additionalProperties": false
                        },
                        "modelPolicy": {
                          "type": "object",
                          "properties": {
                            "inferenceLanes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-local",
                                  "tenant-managed",
                                  "platform-shared",
                                  "third-party-provider"
                                ]
                              }
                            },
                            "permittedProviders": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "trainingPermitted": {
                              "type": "boolean"
                            },
                            "humanReviewBeforeAssessment": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "inferenceLanes",
                            "permittedProviders",
                            "trainingPermitted",
                            "humanReviewBeforeAssessment"
                          ],
                          "additionalProperties": false
                        },
                        "supportAccess": {
                          "type": "object",
                          "properties": {
                            "permitted": {
                              "type": "boolean"
                            },
                            "purposes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "incident-investigation",
                                  "data-recovery",
                                  "ticket-resolution",
                                  "security-review"
                                ]
                              }
                            },
                            "institutionApprovalRequired": {
                              "type": "boolean"
                            },
                            "accessWindowHours": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 8760
                            },
                            "minorMaterialPermitted": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "permitted",
                            "purposes",
                            "institutionApprovalRequired",
                            "accessWindowHours",
                            "minorMaterialPermitted"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "institutionId",
                        "adoptedByUserId",
                        "adoptedAt",
                        "localProcessing",
                        "retention",
                        "minors",
                        "educatorAccess",
                        "audit",
                        "export",
                        "accountClosure",
                        "dataResidency",
                        "roleTemplates",
                        "moderation",
                        "modelPolicy",
                        "supportAccess"
                      ],
                      "additionalProperties": false
                    },
                    "issuesUnderCurrentFloors": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dimension": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "conflictsWith": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "dimension",
                          "code",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "controls",
                    "issuesUnderCurrentFloors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "adoptInstitutionalControls",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "localProcessing": {
                    "type": "object",
                    "properties": {
                      "mode": {
                        "type": "string",
                        "enum": [
                          "local-only",
                          "prefer-local",
                          "platform"
                        ]
                      },
                      "permittedLanes": {
                        "maxItems": 4,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "institution-local",
                            "tenant-managed",
                            "platform-shared",
                            "third-party-provider"
                          ]
                        }
                      }
                    },
                    "required": [
                      "mode",
                      "permittedLanes"
                    ],
                    "additionalProperties": false
                  },
                  "retention": {
                    "type": "object",
                    "properties": {
                      "days": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "enum": [
                            "learner-attempt",
                            "learner-identity",
                            "assessment-record",
                            "cohort-analytics",
                            "audit-record",
                            "source-material",
                            "study-artifact"
                          ]
                        },
                        "additionalProperties": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 36500
                        },
                        "required": [
                          "learner-attempt",
                          "learner-identity",
                          "assessment-record",
                          "cohort-analytics",
                          "audit-record",
                          "source-material",
                          "study-artifact"
                        ]
                      },
                      "legalHoldSuspendsDeletion": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "days",
                      "legalHoldSuspendsDeletion"
                    ],
                    "additionalProperties": false
                  },
                  "minors": {
                    "type": "object",
                    "properties": {
                      "minorsEnrolled": {
                        "type": "boolean"
                      },
                      "guardianConsentRequiredForExport": {
                        "type": "boolean"
                      },
                      "publicationOfMinorMaterial": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "minorsEnrolled",
                      "guardianConsentRequiredForExport",
                      "publicationOfMinorMaterial"
                    ],
                    "additionalProperties": false
                  },
                  "educatorAccess": {
                    "type": "object",
                    "properties": {
                      "grants": {
                        "maxItems": 8,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "submitted-attempt",
                                "assessment-record",
                                "cohort-aggregate",
                                "roster-identity",
                                "draft-attempt",
                                "private-reflection",
                                "unshared-study-artifact",
                                "all-learner-data"
                              ]
                            },
                            "purpose": {
                              "type": "string",
                              "enum": [
                                "assess-submission",
                                "give-feedback",
                                "moderate-report",
                                "support-accommodation",
                                "investigate-integrity",
                                "maintain-roster"
                              ]
                            },
                            "subjectToLearnerSharing": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "scope",
                            "purpose",
                            "subjectToLearnerSharing"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "grants"
                    ],
                    "additionalProperties": false
                  },
                  "audit": {
                    "type": "object",
                    "properties": {
                      "auditedActions": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "tamperEvident": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "auditedActions",
                      "tamperEvident"
                    ],
                    "additionalProperties": false
                  },
                  "export": {
                    "type": "object",
                    "properties": {
                      "permissions": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "dataClass": {
                              "type": "string",
                              "enum": [
                                "learner-attempt",
                                "learner-identity",
                                "assessment-record",
                                "cohort-analytics",
                                "audit-record",
                                "source-material",
                                "study-artifact"
                              ]
                            },
                            "destinationRegion": {
                              "type": "string",
                              "pattern": "^[A-Z]{2}$"
                            },
                            "destinationLane": {
                              "type": "string",
                              "enum": [
                                "institution-local",
                                "tenant-managed",
                                "platform-shared",
                                "third-party-provider"
                              ]
                            }
                          },
                          "required": [
                            "dataClass",
                            "destinationRegion",
                            "destinationLane"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "permissions"
                    ],
                    "additionalProperties": false
                  },
                  "accountClosure": {
                    "type": "object",
                    "properties": {
                      "dispositions": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "enum": [
                            "learner-attempt",
                            "learner-identity",
                            "assessment-record",
                            "cohort-analytics",
                            "audit-record",
                            "source-material",
                            "study-artifact"
                          ]
                        },
                        "additionalProperties": {
                          "type": "string",
                          "enum": [
                            "delete",
                            "transfer-to-learner",
                            "retain-under-hold",
                            "retain-pseudonymized"
                          ]
                        },
                        "required": [
                          "learner-attempt",
                          "learner-identity",
                          "assessment-record",
                          "cohort-analytics",
                          "audit-record",
                          "source-material",
                          "study-artifact"
                        ]
                      }
                    },
                    "required": [
                      "dispositions"
                    ],
                    "additionalProperties": false
                  },
                  "dataResidency": {
                    "type": "object",
                    "properties": {
                      "allowedRegions": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$"
                        }
                      }
                    },
                    "required": [
                      "allowedRegions"
                    ],
                    "additionalProperties": false
                  },
                  "roleTemplates": {
                    "type": "object",
                    "properties": {
                      "templates": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "roleId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "scopes": {
                              "maxItems": 8,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "submitted-attempt",
                                  "assessment-record",
                                  "cohort-aggregate",
                                  "roster-identity",
                                  "draft-attempt",
                                  "private-reflection",
                                  "unshared-study-artifact",
                                  "all-learner-data"
                                ]
                              }
                            },
                            "purpose": {
                              "type": "string",
                              "enum": [
                                "assess-submission",
                                "give-feedback",
                                "moderate-report",
                                "support-accommodation",
                                "investigate-integrity",
                                "maintain-roster"
                              ]
                            },
                            "mayDelegate": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "roleId",
                            "label",
                            "scopes",
                            "purpose",
                            "mayDelegate"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "templates"
                    ],
                    "additionalProperties": false
                  },
                  "moderation": {
                    "type": "object",
                    "properties": {
                      "reviewers": {
                        "maxItems": 3,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "institution-staff",
                            "platform-trust-and-safety",
                            "peer-learner"
                          ]
                        }
                      },
                      "responseHours": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 720
                      },
                      "authorIsNotified": {
                        "type": "boolean"
                      },
                      "appealAvailable": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "reviewers",
                      "responseHours",
                      "authorIsNotified",
                      "appealAvailable"
                    ],
                    "additionalProperties": false
                  },
                  "modelPolicy": {
                    "type": "object",
                    "properties": {
                      "inferenceLanes": {
                        "maxItems": 4,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "institution-local",
                            "tenant-managed",
                            "platform-shared",
                            "third-party-provider"
                          ]
                        }
                      },
                      "permittedProviders": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "trainingPermitted": {
                        "type": "boolean"
                      },
                      "humanReviewBeforeAssessment": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "inferenceLanes",
                      "permittedProviders",
                      "trainingPermitted",
                      "humanReviewBeforeAssessment"
                    ],
                    "additionalProperties": false
                  },
                  "supportAccess": {
                    "type": "object",
                    "properties": {
                      "permitted": {
                        "type": "boolean"
                      },
                      "purposes": {
                        "maxItems": 4,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "incident-investigation",
                            "data-recovery",
                            "ticket-resolution",
                            "security-review"
                          ]
                        }
                      },
                      "institutionApprovalRequired": {
                        "type": "boolean"
                      },
                      "accessWindowHours": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 8760
                      },
                      "minorMaterialPermitted": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "permitted",
                      "purposes",
                      "institutionApprovalRequired",
                      "accessWindowHours",
                      "minorMaterialPermitted"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "localProcessing",
                  "retention",
                  "minors",
                  "educatorAccess",
                  "audit",
                  "export",
                  "accountClosure",
                  "dataResidency",
                  "roleTemplates",
                  "moderation",
                  "modelPolicy",
                  "supportAccess"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "controls": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "institutionId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "localProcessing": {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "type": "string",
                              "enum": [
                                "local-only",
                                "prefer-local",
                                "platform"
                              ]
                            },
                            "permittedLanes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-local",
                                  "tenant-managed",
                                  "platform-shared",
                                  "third-party-provider"
                                ]
                              }
                            }
                          },
                          "required": [
                            "mode",
                            "permittedLanes"
                          ],
                          "additionalProperties": false
                        },
                        "retention": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "enum": [
                                  "learner-attempt",
                                  "learner-identity",
                                  "assessment-record",
                                  "cohort-analytics",
                                  "audit-record",
                                  "source-material",
                                  "study-artifact"
                                ]
                              },
                              "additionalProperties": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 36500
                              },
                              "required": [
                                "learner-attempt",
                                "learner-identity",
                                "assessment-record",
                                "cohort-analytics",
                                "audit-record",
                                "source-material",
                                "study-artifact"
                              ]
                            },
                            "legalHoldSuspendsDeletion": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "days",
                            "legalHoldSuspendsDeletion"
                          ],
                          "additionalProperties": false
                        },
                        "minors": {
                          "type": "object",
                          "properties": {
                            "minorsEnrolled": {
                              "type": "boolean"
                            },
                            "guardianConsentRequiredForExport": {
                              "type": "boolean"
                            },
                            "publicationOfMinorMaterial": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "minorsEnrolled",
                            "guardianConsentRequiredForExport",
                            "publicationOfMinorMaterial"
                          ],
                          "additionalProperties": false
                        },
                        "educatorAccess": {
                          "type": "object",
                          "properties": {
                            "grants": {
                              "maxItems": 8,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "scope": {
                                    "type": "string",
                                    "enum": [
                                      "submitted-attempt",
                                      "assessment-record",
                                      "cohort-aggregate",
                                      "roster-identity",
                                      "draft-attempt",
                                      "private-reflection",
                                      "unshared-study-artifact",
                                      "all-learner-data"
                                    ]
                                  },
                                  "purpose": {
                                    "type": "string",
                                    "enum": [
                                      "assess-submission",
                                      "give-feedback",
                                      "moderate-report",
                                      "support-accommodation",
                                      "investigate-integrity",
                                      "maintain-roster"
                                    ]
                                  },
                                  "subjectToLearnerSharing": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "scope",
                                  "purpose",
                                  "subjectToLearnerSharing"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "grants"
                          ],
                          "additionalProperties": false
                        },
                        "audit": {
                          "type": "object",
                          "properties": {
                            "auditedActions": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "tamperEvident": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "auditedActions",
                            "tamperEvident"
                          ],
                          "additionalProperties": false
                        },
                        "export": {
                          "type": "object",
                          "properties": {
                            "permissions": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "dataClass": {
                                    "type": "string",
                                    "enum": [
                                      "learner-attempt",
                                      "learner-identity",
                                      "assessment-record",
                                      "cohort-analytics",
                                      "audit-record",
                                      "source-material",
                                      "study-artifact"
                                    ]
                                  },
                                  "destinationRegion": {
                                    "type": "string",
                                    "pattern": "^[A-Z]{2}$"
                                  },
                                  "destinationLane": {
                                    "type": "string",
                                    "enum": [
                                      "institution-local",
                                      "tenant-managed",
                                      "platform-shared",
                                      "third-party-provider"
                                    ]
                                  }
                                },
                                "required": [
                                  "dataClass",
                                  "destinationRegion",
                                  "destinationLane"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "permissions"
                          ],
                          "additionalProperties": false
                        },
                        "accountClosure": {
                          "type": "object",
                          "properties": {
                            "dispositions": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "enum": [
                                  "learner-attempt",
                                  "learner-identity",
                                  "assessment-record",
                                  "cohort-analytics",
                                  "audit-record",
                                  "source-material",
                                  "study-artifact"
                                ]
                              },
                              "additionalProperties": {
                                "type": "string",
                                "enum": [
                                  "delete",
                                  "transfer-to-learner",
                                  "retain-under-hold",
                                  "retain-pseudonymized"
                                ]
                              },
                              "required": [
                                "learner-attempt",
                                "learner-identity",
                                "assessment-record",
                                "cohort-analytics",
                                "audit-record",
                                "source-material",
                                "study-artifact"
                              ]
                            }
                          },
                          "required": [
                            "dispositions"
                          ],
                          "additionalProperties": false
                        },
                        "dataResidency": {
                          "type": "object",
                          "properties": {
                            "allowedRegions": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              }
                            }
                          },
                          "required": [
                            "allowedRegions"
                          ],
                          "additionalProperties": false
                        },
                        "roleTemplates": {
                          "type": "object",
                          "properties": {
                            "templates": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "roleId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "scopes": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "submitted-attempt",
                                        "assessment-record",
                                        "cohort-aggregate",
                                        "roster-identity",
                                        "draft-attempt",
                                        "private-reflection",
                                        "unshared-study-artifact",
                                        "all-learner-data"
                                      ]
                                    }
                                  },
                                  "purpose": {
                                    "type": "string",
                                    "enum": [
                                      "assess-submission",
                                      "give-feedback",
                                      "moderate-report",
                                      "support-accommodation",
                                      "investigate-integrity",
                                      "maintain-roster"
                                    ]
                                  },
                                  "mayDelegate": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "roleId",
                                  "label",
                                  "scopes",
                                  "purpose",
                                  "mayDelegate"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "templates"
                          ],
                          "additionalProperties": false
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "reviewers": {
                              "maxItems": 3,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-staff",
                                  "platform-trust-and-safety",
                                  "peer-learner"
                                ]
                              }
                            },
                            "responseHours": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 720
                            },
                            "authorIsNotified": {
                              "type": "boolean"
                            },
                            "appealAvailable": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "reviewers",
                            "responseHours",
                            "authorIsNotified",
                            "appealAvailable"
                          ],
                          "additionalProperties": false
                        },
                        "modelPolicy": {
                          "type": "object",
                          "properties": {
                            "inferenceLanes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "institution-local",
                                  "tenant-managed",
                                  "platform-shared",
                                  "third-party-provider"
                                ]
                              }
                            },
                            "permittedProviders": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "trainingPermitted": {
                              "type": "boolean"
                            },
                            "humanReviewBeforeAssessment": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "inferenceLanes",
                            "permittedProviders",
                            "trainingPermitted",
                            "humanReviewBeforeAssessment"
                          ],
                          "additionalProperties": false
                        },
                        "supportAccess": {
                          "type": "object",
                          "properties": {
                            "permitted": {
                              "type": "boolean"
                            },
                            "purposes": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "incident-investigation",
                                  "data-recovery",
                                  "ticket-resolution",
                                  "security-review"
                                ]
                              }
                            },
                            "institutionApprovalRequired": {
                              "type": "boolean"
                            },
                            "accessWindowHours": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 8760
                            },
                            "minorMaterialPermitted": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "permitted",
                            "purposes",
                            "institutionApprovalRequired",
                            "accessWindowHours",
                            "minorMaterialPermitted"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "institutionId",
                        "adoptedByUserId",
                        "adoptedAt",
                        "localProcessing",
                        "retention",
                        "minors",
                        "educatorAccess",
                        "audit",
                        "export",
                        "accountClosure",
                        "dataResidency",
                        "roleTemplates",
                        "moderation",
                        "modelPolicy",
                        "supportAccess"
                      ],
                      "additionalProperties": false
                    },
                    "issuesUnderCurrentFloors": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dimension": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "conflictsWith": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "dimension",
                          "code",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "controls",
                    "issuesUnderCurrentFloors"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/institutional-controls/decisions": {
      "post": {
        "operationId": "decideInstitutionalRequest",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "policy"
                      },
                      "action": {
                        "type": "string",
                        "enum": [
                          "educator-read",
                          "process",
                          "export",
                          "close-account"
                        ]
                      },
                      "dataClass": {
                        "type": "string",
                        "enum": [
                          "learner-attempt",
                          "learner-identity",
                          "assessment-record",
                          "cohort-analytics",
                          "audit-record",
                          "source-material",
                          "study-artifact"
                        ]
                      },
                      "scope": {
                        "type": "string",
                        "enum": [
                          "submitted-attempt",
                          "assessment-record",
                          "cohort-aggregate",
                          "roster-identity",
                          "draft-attempt",
                          "private-reflection",
                          "unshared-study-artifact",
                          "all-learner-data"
                        ]
                      },
                      "purpose": {
                        "type": "string",
                        "enum": [
                          "assess-submission",
                          "give-feedback",
                          "moderate-report",
                          "support-accommodation",
                          "investigate-integrity",
                          "maintain-roster"
                        ]
                      },
                      "learnerHasShared": {
                        "type": "boolean"
                      },
                      "subjectIsMinor": {
                        "type": "boolean"
                      },
                      "guardianConsentOnFile": {
                        "type": "boolean"
                      },
                      "lane": {
                        "type": "string",
                        "enum": [
                          "institution-local",
                          "tenant-managed",
                          "platform-shared",
                          "third-party-provider"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "pattern": "^[A-Z]{2}$"
                      },
                      "legalHold": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "kind",
                      "action",
                      "dataClass"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "control"
                      },
                      "action": {
                        "type": "string",
                        "enum": [
                          "assign-role",
                          "moderate",
                          "model-inference",
                          "support-read"
                        ]
                      },
                      "roleId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "assignerMayDelegate": {
                        "type": "boolean"
                      },
                      "reviewer": {
                        "type": "string",
                        "enum": [
                          "institution-staff",
                          "platform-trust-and-safety",
                          "peer-learner"
                        ]
                      },
                      "lane": {
                        "type": "string",
                        "enum": [
                          "institution-local",
                          "tenant-managed",
                          "platform-shared",
                          "third-party-provider"
                        ]
                      },
                      "provider": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "forAssessment": {
                        "type": "boolean"
                      },
                      "humanReviewed": {
                        "type": "boolean"
                      },
                      "supportPurpose": {
                        "type": "string",
                        "enum": [
                          "incident-investigation",
                          "data-recovery",
                          "ticket-resolution",
                          "security-review"
                        ]
                      },
                      "institutionApproved": {
                        "type": "boolean"
                      },
                      "requestedWindowHours": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 8760
                      },
                      "subjectIsMinor": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "kind",
                      "action"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "allowed": {
                      "type": "boolean"
                    },
                    "refusals": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1000
                      }
                    },
                    "auditAction": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "controlsRevision": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "allowed",
                    "refusals",
                    "auditAction",
                    "controlsRevision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/connectors/protocol": {
      "get": {
        "operationId": "readConnectorProtocol",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "compatibility": {
                      "type": "object",
                      "properties": {
                        "minEnvelopeVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "maxEnvelopeVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "eventSchemaCompatMode": {
                          "type": "string",
                          "enum": [
                            "strict",
                            "additive-only",
                            "version-negotiated"
                          ]
                        },
                        "deprecatedEnvelopeVersions": {
                          "default": [],
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "migrationNotesRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "minEnvelopeVersion",
                        "maxEnvelopeVersion",
                        "eventSchemaCompatMode",
                        "deprecatedEnvelopeVersions"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "compatibility"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/connectors": {
      "get": {
        "operationId": "listConnectorRegistries",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "releases": {
                      "maxItems": 500,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "tenantId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "connectorId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "engineFamily": {
                            "type": "string",
                            "enum": [
                              "unreal",
                              "unity",
                              "godot",
                              "v2",
                              "custom-runtime"
                            ]
                          },
                          "envelopeVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "eventSchemas": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "stream": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "schemaRef": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "ownerDomain": {
                                  "type": "string",
                                  "pattern": "^[a-z][a-z0-9-]*$"
                                },
                                "producerBuild": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "clockBasis": {
                                  "type": "string",
                                  "enum": [
                                    "session-monotonic",
                                    "video-clock",
                                    "engine-frame",
                                    "event-timestamp"
                                  ]
                                },
                                "sequenced": {
                                  "type": "boolean"
                                },
                                "privacyClass": {
                                  "type": "string",
                                  "enum": [
                                    "public",
                                    "pseudonymized",
                                    "restricted",
                                    "prohibited"
                                  ]
                                }
                              },
                              "required": [
                                "stream",
                                "schemaRef",
                                "schemaVersion",
                                "ownerDomain",
                                "producerBuild",
                                "clockBasis",
                                "sequenced",
                                "privacyClass"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "compatibility": {
                            "type": "object",
                            "properties": {
                              "minEnvelopeVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "maxEnvelopeVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "eventSchemaCompatMode": {
                                "type": "string",
                                "enum": [
                                  "strict",
                                  "additive-only",
                                  "version-negotiated"
                                ]
                              },
                              "deprecatedEnvelopeVersions": {
                                "default": [],
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                }
                              },
                              "migrationNotesRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "required": [
                              "minEnvelopeVersion",
                              "maxEnvelopeVersion",
                              "eventSchemaCompatMode",
                              "deprecatedEnvelopeVersions"
                            ],
                            "additionalProperties": false
                          },
                          "publishedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "publishedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "authorizations": {
                            "type": "object",
                            "properties": {
                              "privacyRelaxations": {
                                "default": [],
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "stream": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "stream",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "ownershipTransfers": {
                                "default": [],
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "stream": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "from": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    },
                                    "to": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    }
                                  },
                                  "required": [
                                    "stream",
                                    "from",
                                    "to"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "retirements": {
                                "default": [],
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              }
                            },
                            "required": [
                              "privacyRelaxations",
                              "ownershipTransfers",
                              "retirements"
                            ],
                            "additionalProperties": false
                          },
                          "admittedChanges": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "stream": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "added",
                                    "removed",
                                    "unchanged",
                                    "compatible-revision",
                                    "breaking-revision",
                                    "silent-redefinition"
                                  ]
                                },
                                "differences": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 400
                                  }
                                },
                                "relaxesPrivacy": {
                                  "type": "boolean"
                                },
                                "transfersOwnership": {
                                  "type": "boolean"
                                },
                                "previousVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "nextVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                }
                              },
                              "required": [
                                "stream",
                                "kind",
                                "differences",
                                "relaxesPrivacy",
                                "transfersOwnership"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "conformance": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "ranAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "conformant": {
                                    "type": "boolean"
                                  },
                                  "failedChecks": {
                                    "default": [],
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 60
                                    }
                                  },
                                  "ranBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "ranAt",
                                  "conformant",
                                  "failedChecks",
                                  "ranBy"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "tenantId",
                          "connectorId",
                          "engineFamily",
                          "envelopeVersion",
                          "eventSchemas",
                          "compatibility",
                          "publishedByUserId",
                          "publishedAt",
                          "authorizations",
                          "admittedChanges",
                          "conformance"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "releases"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/connectors/{connectorId}/registry": {
      "get": {
        "operationId": "readConnectorRegistry",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revision",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "release": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "connectorId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "engineFamily": {
                          "type": "string",
                          "enum": [
                            "unreal",
                            "unity",
                            "godot",
                            "v2",
                            "custom-runtime"
                          ]
                        },
                        "envelopeVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "eventSchemas": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stream": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "schemaRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "ownerDomain": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "producerBuild": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "clockBasis": {
                                "type": "string",
                                "enum": [
                                  "session-monotonic",
                                  "video-clock",
                                  "engine-frame",
                                  "event-timestamp"
                                ]
                              },
                              "sequenced": {
                                "type": "boolean"
                              },
                              "privacyClass": {
                                "type": "string",
                                "enum": [
                                  "public",
                                  "pseudonymized",
                                  "restricted",
                                  "prohibited"
                                ]
                              }
                            },
                            "required": [
                              "stream",
                              "schemaRef",
                              "schemaVersion",
                              "ownerDomain",
                              "producerBuild",
                              "clockBasis",
                              "sequenced",
                              "privacyClass"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "compatibility": {
                          "type": "object",
                          "properties": {
                            "minEnvelopeVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "maxEnvelopeVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "eventSchemaCompatMode": {
                              "type": "string",
                              "enum": [
                                "strict",
                                "additive-only",
                                "version-negotiated"
                              ]
                            },
                            "deprecatedEnvelopeVersions": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              }
                            },
                            "migrationNotesRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "minEnvelopeVersion",
                            "maxEnvelopeVersion",
                            "eventSchemaCompatMode",
                            "deprecatedEnvelopeVersions"
                          ],
                          "additionalProperties": false
                        },
                        "publishedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "publishedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "authorizations": {
                          "type": "object",
                          "properties": {
                            "privacyRelaxations": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "stream",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "ownershipTransfers": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "from": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "to": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  }
                                },
                                "required": [
                                  "stream",
                                  "from",
                                  "to"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "retirements": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            }
                          },
                          "required": [
                            "privacyRelaxations",
                            "ownershipTransfers",
                            "retirements"
                          ],
                          "additionalProperties": false
                        },
                        "admittedChanges": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stream": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "removed",
                                  "unchanged",
                                  "compatible-revision",
                                  "breaking-revision",
                                  "silent-redefinition"
                                ]
                              },
                              "differences": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                }
                              },
                              "relaxesPrivacy": {
                                "type": "boolean"
                              },
                              "transfersOwnership": {
                                "type": "boolean"
                              },
                              "previousVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "nextVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              }
                            },
                            "required": [
                              "stream",
                              "kind",
                              "differences",
                              "relaxesPrivacy",
                              "transfersOwnership"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "conformance": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "ranAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "conformant": {
                                  "type": "boolean"
                                },
                                "failedChecks": {
                                  "default": [],
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "ranBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "ranAt",
                                "conformant",
                                "failedChecks",
                                "ranBy"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "connectorId",
                        "engineFamily",
                        "envelopeVersion",
                        "eventSchemas",
                        "compatibility",
                        "publishedByUserId",
                        "publishedAt",
                        "authorizations",
                        "admittedChanges",
                        "conformance"
                      ],
                      "additionalProperties": false
                    },
                    "unchanged": {
                      "type": "boolean"
                    },
                    "admittedChanges": {
                      "maxItems": 500,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "stream": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "added",
                              "removed",
                              "unchanged",
                              "compatible-revision",
                              "breaking-revision",
                              "silent-redefinition"
                            ]
                          },
                          "differences": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            }
                          },
                          "relaxesPrivacy": {
                            "type": "boolean"
                          },
                          "transfersOwnership": {
                            "type": "boolean"
                          },
                          "previousVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "nextVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "stream",
                          "kind",
                          "differences",
                          "relaxesPrivacy",
                          "transfersOwnership"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "release",
                    "unchanged",
                    "admittedChanges"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/connectors/registry": {
      "post": {
        "operationId": "publishConnectorRegistry",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "connectorId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "engineFamily": {
                    "type": "string",
                    "enum": [
                      "unreal",
                      "unity",
                      "godot",
                      "v2",
                      "custom-runtime"
                    ]
                  },
                  "envelopeVersion": {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                  },
                  "eventSchemas": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "stream": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "schemaRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "schemaVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "ownerDomain": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*$"
                        },
                        "producerBuild": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "clockBasis": {
                          "type": "string",
                          "enum": [
                            "session-monotonic",
                            "video-clock",
                            "engine-frame",
                            "event-timestamp"
                          ]
                        },
                        "sequenced": {
                          "type": "boolean"
                        },
                        "privacyClass": {
                          "type": "string",
                          "enum": [
                            "public",
                            "pseudonymized",
                            "restricted",
                            "prohibited"
                          ]
                        }
                      },
                      "required": [
                        "stream",
                        "schemaRef",
                        "schemaVersion",
                        "ownerDomain",
                        "producerBuild",
                        "clockBasis",
                        "sequenced",
                        "privacyClass"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "compatibility": {
                    "type": "object",
                    "properties": {
                      "minEnvelopeVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "maxEnvelopeVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "eventSchemaCompatMode": {
                        "type": "string",
                        "enum": [
                          "strict",
                          "additive-only",
                          "version-negotiated"
                        ]
                      },
                      "deprecatedEnvelopeVersions": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        }
                      },
                      "migrationNotesRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      }
                    },
                    "required": [
                      "minEnvelopeVersion",
                      "maxEnvelopeVersion",
                      "eventSchemaCompatMode"
                    ],
                    "additionalProperties": false
                  },
                  "authorizations": {
                    "type": "object",
                    "properties": {
                      "privacyRelaxations": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "stream": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "stream",
                            "reason"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "ownershipTransfers": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "stream": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "from": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "to": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            }
                          },
                          "required": [
                            "stream",
                            "from",
                            "to"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "retirements": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "conformance": {
                    "type": "object",
                    "properties": {
                      "ranAt": {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      "conformant": {
                        "type": "boolean"
                      },
                      "failedChecks": {
                        "default": [],
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 60
                        }
                      },
                      "ranBy": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "ranAt",
                      "conformant",
                      "ranBy"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "connectorId",
                  "engineFamily",
                  "envelopeVersion",
                  "eventSchemas",
                  "compatibility"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "release": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "connectorId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "engineFamily": {
                          "type": "string",
                          "enum": [
                            "unreal",
                            "unity",
                            "godot",
                            "v2",
                            "custom-runtime"
                          ]
                        },
                        "envelopeVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "eventSchemas": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stream": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "schemaRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "ownerDomain": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "producerBuild": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "clockBasis": {
                                "type": "string",
                                "enum": [
                                  "session-monotonic",
                                  "video-clock",
                                  "engine-frame",
                                  "event-timestamp"
                                ]
                              },
                              "sequenced": {
                                "type": "boolean"
                              },
                              "privacyClass": {
                                "type": "string",
                                "enum": [
                                  "public",
                                  "pseudonymized",
                                  "restricted",
                                  "prohibited"
                                ]
                              }
                            },
                            "required": [
                              "stream",
                              "schemaRef",
                              "schemaVersion",
                              "ownerDomain",
                              "producerBuild",
                              "clockBasis",
                              "sequenced",
                              "privacyClass"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "compatibility": {
                          "type": "object",
                          "properties": {
                            "minEnvelopeVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "maxEnvelopeVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "eventSchemaCompatMode": {
                              "type": "string",
                              "enum": [
                                "strict",
                                "additive-only",
                                "version-negotiated"
                              ]
                            },
                            "deprecatedEnvelopeVersions": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              }
                            },
                            "migrationNotesRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "minEnvelopeVersion",
                            "maxEnvelopeVersion",
                            "eventSchemaCompatMode",
                            "deprecatedEnvelopeVersions"
                          ],
                          "additionalProperties": false
                        },
                        "publishedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "publishedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "authorizations": {
                          "type": "object",
                          "properties": {
                            "privacyRelaxations": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "stream",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "ownershipTransfers": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "from": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "to": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  }
                                },
                                "required": [
                                  "stream",
                                  "from",
                                  "to"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "retirements": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            }
                          },
                          "required": [
                            "privacyRelaxations",
                            "ownershipTransfers",
                            "retirements"
                          ],
                          "additionalProperties": false
                        },
                        "admittedChanges": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "stream": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "removed",
                                  "unchanged",
                                  "compatible-revision",
                                  "breaking-revision",
                                  "silent-redefinition"
                                ]
                              },
                              "differences": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 400
                                }
                              },
                              "relaxesPrivacy": {
                                "type": "boolean"
                              },
                              "transfersOwnership": {
                                "type": "boolean"
                              },
                              "previousVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "nextVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              }
                            },
                            "required": [
                              "stream",
                              "kind",
                              "differences",
                              "relaxesPrivacy",
                              "transfersOwnership"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "conformance": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "ranAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "conformant": {
                                  "type": "boolean"
                                },
                                "failedChecks": {
                                  "default": [],
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "ranBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "ranAt",
                                "conformant",
                                "failedChecks",
                                "ranBy"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "connectorId",
                        "engineFamily",
                        "envelopeVersion",
                        "eventSchemas",
                        "compatibility",
                        "publishedByUserId",
                        "publishedAt",
                        "authorizations",
                        "admittedChanges",
                        "conformance"
                      ],
                      "additionalProperties": false
                    },
                    "unchanged": {
                      "type": "boolean"
                    },
                    "admittedChanges": {
                      "maxItems": 500,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "stream": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "added",
                              "removed",
                              "unchanged",
                              "compatible-revision",
                              "breaking-revision",
                              "silent-redefinition"
                            ]
                          },
                          "differences": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 400
                            }
                          },
                          "relaxesPrivacy": {
                            "type": "boolean"
                          },
                          "transfersOwnership": {
                            "type": "boolean"
                          },
                          "previousVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "nextVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "stream",
                          "kind",
                          "differences",
                          "relaxesPrivacy",
                          "transfersOwnership"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "release",
                    "unchanged",
                    "admittedChanges"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/discovery": {
      "post": {
        "operationId": "discoverRelated",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "seedRecordId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "enabledKinds": {
                    "minItems": 1,
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "similarity",
                        "productive-contrast",
                        "distant-analogy",
                        "bridge-reference",
                        "counterexample",
                        "coverage-gap"
                      ]
                    }
                  },
                  "weights": {
                    "minItems": 1,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "dimension": {
                          "type": "string",
                          "enum": [
                            "palette",
                            "composition",
                            "shape",
                            "motion",
                            "sound",
                            "mechanic",
                            "tone",
                            "narrative-function"
                          ]
                        },
                        "weight": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        }
                      },
                      "required": [
                        "dimension",
                        "weight"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "minScore": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  },
                  "minWeightCoverage": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "seedRecordId",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "seedRecordId": {
                      "type": "string"
                    },
                    "panel": {
                      "type": "object",
                      "properties": {
                        "outcomes": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string"
                              },
                              "ranAndFoundNothing": {
                                "type": "boolean"
                              },
                              "hits": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "hitId": {
                                      "type": "string"
                                    },
                                    "kind": {
                                      "type": "string"
                                    },
                                    "summary": {
                                      "type": "string"
                                    },
                                    "kindLabel": {
                                      "type": "string"
                                    },
                                    "doesNotClaim": {
                                      "type": "string"
                                    },
                                    "explains": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "hitId",
                                    "kind",
                                    "summary",
                                    "kindLabel",
                                    "doesNotClaim",
                                    "explains"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "kind",
                              "ranAndFoundNothing",
                              "hits"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "exclusions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              },
                              "statement": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "reason",
                              "statement"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rejected": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "hitId": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "missing": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "hitId",
                              "kind",
                              "missing",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "outcomes",
                        "exclusions",
                        "rejected"
                      ],
                      "additionalProperties": false
                    },
                    "unmeasurableDimensions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dimension": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "dimension",
                          "reason"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "diversity": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "selected": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "itemId": {
                                    "type": "string"
                                  },
                                  "score": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "itemId",
                                  "score"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "demoted": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "itemId": {
                                    "type": "string"
                                  },
                                  "facet": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": "string"
                                  },
                                  "cap": {
                                    "type": "integer",
                                    "minimum": -9007199254740991,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "itemId",
                                  "facet",
                                  "value",
                                  "cap"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "selected",
                            "demoted"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "clustering": {
                      "type": "object",
                      "properties": {
                        "clusters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "clusterId": {
                                "type": "string"
                              },
                              "memberIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "sharedTerms": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "spanningTerms": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "clusterId",
                              "memberIds",
                              "sharedTerms",
                              "spanningTerms"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "singletonIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "untaggedIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "minSharedTerms": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "clusters",
                        "singletonIds",
                        "untaggedIds",
                        "minSharedTerms"
                      ],
                      "additionalProperties": false
                    },
                    "candidatesConsidered": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "excludedWorks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "title",
                          "reasons"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "seedRecordId",
                    "panel",
                    "unmeasurableDimensions",
                    "diversity",
                    "clustering",
                    "candidatesConsidered",
                    "excludedWorks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/taxonomy/vocabulary": {
      "get": {
        "operationId": "readTaxonomyVocabulary",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "terms": {
                      "maxItems": 5000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "term": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "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)$"
                              },
                              "envelope": {
                                "type": "object",
                                "properties": {
                                  "schemaVersion": {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  "tenantId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "projectId": {
                                    "anyOf": [
                                      {
                                        "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)$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "createdBy": {
                                    "oneOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "human"
                                          },
                                          "userId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "userId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "model"
                                          },
                                          "modelId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "modelVersion": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 120
                                          },
                                          "analysisRunId": {
                                            "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)$"
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "modelId",
                                          "modelVersion"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "imported-system"
                                          },
                                          "systemId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "importBatchId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "systemId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "const": "collaborative-group"
                                          },
                                          "groupId": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          },
                                          "memberUserIds": {
                                            "maxItems": 500,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 160
                                            }
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "groupId"
                                        ],
                                        "additionalProperties": false
                                      }
                                    ]
                                  },
                                  "createdAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "updatedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "revision": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  "supersedesRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "supersededByRevision": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "provenance": {
                                    "type": "object",
                                    "properties": {
                                      "system": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "context": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "system"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "deletionState": {
                                    "type": "string",
                                    "enum": [
                                      "active",
                                      "soft-deleted",
                                      "tombstoned",
                                      "legal-hold"
                                    ]
                                  },
                                  "changeReason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "schemaVersion",
                                  "tenantId",
                                  "projectId",
                                  "createdBy",
                                  "createdAt",
                                  "updatedAt",
                                  "revision",
                                  "supersedesRevision",
                                  "supersededByRevision",
                                  "provenance",
                                  "deletionState"
                                ],
                                "additionalProperties": false
                              },
                              "owner": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "vocabulary": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "vocabularyVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "preferredLabel": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "aliases": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "translations": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string",
                                  "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "provenance": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "broaderTermIds": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "narrowerTermIds": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "relatedTermIds": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "applicability": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "lifecycle": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "state": {
                                        "type": "string",
                                        "const": "active"
                                      }
                                    },
                                    "required": [
                                      "state"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "state": {
                                        "type": "string",
                                        "const": "deprecated"
                                      },
                                      "replacementTermId": {
                                        "anyOf": [
                                          {
                                            "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)$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "migrationRule": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                      }
                                    },
                                    "required": [
                                      "state",
                                      "replacementTermId",
                                      "migrationRule"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "envelope",
                              "owner",
                              "vocabulary",
                              "vocabularyVersion",
                              "preferredLabel",
                              "aliases",
                              "translations",
                              "provenance",
                              "broaderTermIds",
                              "narrowerTermIds",
                              "relatedTermIds",
                              "applicability",
                              "lifecycle"
                            ],
                            "additionalProperties": false
                          },
                          "ref": {
                            "type": "object",
                            "properties": {
                              "domain": {
                                "type": "string",
                                "pattern": "^[a-z][a-z0-9-]*$"
                              },
                              "facet": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "termRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "domain",
                              "facet",
                              "termRef"
                            ],
                            "additionalProperties": false
                          },
                          "extension": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "extensionId": {
                                    "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)$"
                                  },
                                  "extendsRef": {
                                    "type": "object",
                                    "properties": {
                                      "domain": {
                                        "type": "string",
                                        "pattern": "^[a-z][a-z0-9-]*$"
                                      },
                                      "facet": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 80
                                      },
                                      "termRef": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "domain",
                                      "facet",
                                      "termRef"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "extensionId",
                                  "extendsRef"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "term",
                          "ref",
                          "extension"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "extensions": {
                      "maxItems": 500,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "namespace": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$"
                          },
                          "displayName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "version": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "owner": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "domain",
                                  "organization",
                                  "community"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accountableContact": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "kind",
                              "id",
                              "accountableContact"
                            ],
                            "additionalProperties": false
                          },
                          "provenance": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4000
                          },
                          "languageScope": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                            }
                          },
                          "cultureScope": {
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "compatibility": {
                            "type": "object",
                            "properties": {
                              "compatMode": {
                                "type": "string",
                                "enum": [
                                  "namespaced-independent",
                                  "additive-only",
                                  "overlay"
                                ]
                              },
                              "baselineVocabulary": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "coreVersionMin": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "coreVersionMax": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "compatMode",
                              "baselineVocabulary",
                              "coreVersionMin",
                              "coreVersionMax"
                            ],
                            "additionalProperties": false
                          },
                          "migration": {
                            "type": "object",
                            "properties": {
                              "versioningPolicy": {
                                "type": "string",
                                "enum": [
                                  "semver",
                                  "date-based"
                                ]
                              },
                              "breakingChangePolicy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "migrationRulesRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "required": [
                              "versioningPolicy",
                              "breakingChangePolicy"
                            ],
                            "additionalProperties": false
                          },
                          "moderation": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "pending",
                                  "approved",
                                  "flagged",
                                  "suspended"
                                ]
                              },
                              "policyRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "reviewedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reviewedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "status",
                              "policyRef"
                            ],
                            "additionalProperties": false
                          },
                          "removal": {
                            "type": "object",
                            "properties": {
                              "removable": {
                                "type": "boolean"
                              },
                              "onRemoval": {
                                "type": "string",
                                "enum": [
                                  "orphan-usages",
                                  "migrate-to-baseline",
                                  "tombstone-usages"
                                ]
                              },
                              "takedownContact": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "retentionAfterRemovalDays": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 3650
                              }
                            },
                            "required": [
                              "removable",
                              "onRemoval",
                              "takedownContact",
                              "retentionAfterRemovalDays"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "namespace",
                          "displayName",
                          "version",
                          "owner",
                          "provenance",
                          "languageScope",
                          "cultureScope",
                          "compatibility",
                          "migration",
                          "moderation",
                          "removal"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "terms",
                    "extensions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/taxonomy/extensions": {
      "post": {
        "operationId": "registerTaxonomyExtension",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "extensionId": {
                    "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)$"
                  },
                  "namespace": {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$"
                  },
                  "displayName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "version": {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                  },
                  "owner": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "domain",
                          "organization",
                          "community"
                        ]
                      },
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "accountableContact": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "kind",
                      "id",
                      "accountableContact"
                    ],
                    "additionalProperties": false
                  },
                  "provenance": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "languageScope": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 35
                    }
                  },
                  "cultureScope": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    }
                  },
                  "compatibility": {
                    "type": "object",
                    "properties": {
                      "compatMode": {
                        "type": "string",
                        "enum": [
                          "namespaced-independent",
                          "additive-only",
                          "overlay"
                        ]
                      },
                      "baselineVocabulary": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "coreVersionMin": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "coreVersionMax": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "compatMode",
                      "baselineVocabulary",
                      "coreVersionMin",
                      "coreVersionMax"
                    ],
                    "additionalProperties": false
                  },
                  "migration": {
                    "type": "object",
                    "properties": {
                      "versioningPolicy": {
                        "type": "string",
                        "enum": [
                          "semver",
                          "date-based"
                        ]
                      },
                      "breakingChangePolicy": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "migrationRulesRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      }
                    },
                    "required": [
                      "versioningPolicy",
                      "breakingChangePolicy"
                    ],
                    "additionalProperties": false
                  },
                  "moderation": {
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "approved",
                          "flagged",
                          "suspended"
                        ]
                      },
                      "policyRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "reviewedBy": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "reviewedAt": {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "required": [
                      "status",
                      "policyRef"
                    ],
                    "additionalProperties": false
                  },
                  "removal": {
                    "type": "object",
                    "properties": {
                      "removable": {
                        "type": "boolean"
                      },
                      "onRemoval": {
                        "type": "string",
                        "enum": [
                          "orphan-usages",
                          "migrate-to-baseline",
                          "tombstone-usages"
                        ]
                      },
                      "takedownContact": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      },
                      "retentionAfterRemovalDays": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 3650
                      }
                    },
                    "required": [
                      "removable",
                      "onRemoval",
                      "takedownContact",
                      "retentionAfterRemovalDays"
                    ],
                    "additionalProperties": false
                  },
                  "changeReason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "deploymentLanguages": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 35
                    }
                  }
                },
                "required": [
                  "namespace",
                  "displayName",
                  "version",
                  "owner",
                  "provenance",
                  "languageScope",
                  "compatibility",
                  "migration",
                  "moderation",
                  "removal",
                  "deploymentLanguages"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "extension": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "namespace": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$"
                        },
                        "displayName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "version": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "owner": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "domain",
                                "organization",
                                "community"
                              ]
                            },
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "accountableContact": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "kind",
                            "id",
                            "accountableContact"
                          ],
                          "additionalProperties": false
                        },
                        "provenance": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 4000
                        },
                        "languageScope": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                          }
                        },
                        "cultureScope": {
                          "default": [],
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "compatibility": {
                          "type": "object",
                          "properties": {
                            "compatMode": {
                              "type": "string",
                              "enum": [
                                "namespaced-independent",
                                "additive-only",
                                "overlay"
                              ]
                            },
                            "baselineVocabulary": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "coreVersionMin": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "coreVersionMax": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "compatMode",
                            "baselineVocabulary",
                            "coreVersionMin",
                            "coreVersionMax"
                          ],
                          "additionalProperties": false
                        },
                        "migration": {
                          "type": "object",
                          "properties": {
                            "versioningPolicy": {
                              "type": "string",
                              "enum": [
                                "semver",
                                "date-based"
                              ]
                            },
                            "breakingChangePolicy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "migrationRulesRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "versioningPolicy",
                            "breakingChangePolicy"
                          ],
                          "additionalProperties": false
                        },
                        "moderation": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "pending",
                                "approved",
                                "flagged",
                                "suspended"
                              ]
                            },
                            "policyRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "reviewedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "status",
                            "policyRef"
                          ],
                          "additionalProperties": false
                        },
                        "removal": {
                          "type": "object",
                          "properties": {
                            "removable": {
                              "type": "boolean"
                            },
                            "onRemoval": {
                              "type": "string",
                              "enum": [
                                "orphan-usages",
                                "migrate-to-baseline",
                                "tombstone-usages"
                              ]
                            },
                            "takedownContact": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "retentionAfterRemovalDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 3650
                            }
                          },
                          "required": [
                            "removable",
                            "onRemoval",
                            "takedownContact",
                            "retentionAfterRemovalDays"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "namespace",
                        "displayName",
                        "version",
                        "owner",
                        "provenance",
                        "languageScope",
                        "cultureScope",
                        "compatibility",
                        "migration",
                        "moderation",
                        "removal"
                      ],
                      "additionalProperties": false
                    },
                    "usable": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "extension",
                    "usable"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/taxonomy/terms": {
      "post": {
        "operationId": "registerTaxonomyTerm",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "termId": {
                    "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)$"
                  },
                  "term": {
                    "type": "object",
                    "properties": {
                      "owner": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "vocabulary": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "vocabularyVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "preferredLabel": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "aliases": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "translations": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                        },
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "provenance": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "broaderTermIds": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "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)$"
                        }
                      },
                      "narrowerTermIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "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)$"
                        }
                      },
                      "relatedTermIds": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "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)$"
                        }
                      },
                      "applicability": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "lifecycle": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "const": "active"
                              }
                            },
                            "required": [
                              "state"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "state": {
                                "type": "string",
                                "const": "deprecated"
                              },
                              "replacementTermId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "migrationRule": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "state",
                              "replacementTermId",
                              "migrationRule"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "required": [
                      "owner",
                      "vocabulary",
                      "vocabularyVersion",
                      "preferredLabel",
                      "aliases",
                      "translations",
                      "provenance",
                      "broaderTermIds",
                      "narrowerTermIds",
                      "relatedTermIds",
                      "applicability",
                      "lifecycle"
                    ],
                    "additionalProperties": false
                  },
                  "ref": {
                    "type": "object",
                    "properties": {
                      "domain": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "facet": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "termRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "domain",
                      "facet",
                      "termRef"
                    ],
                    "additionalProperties": false
                  },
                  "extension": {
                    "type": "object",
                    "properties": {
                      "extensionId": {
                        "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)$"
                      },
                      "extendsRef": {
                        "type": "object",
                        "properties": {
                          "domain": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*$"
                          },
                          "facet": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "termRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "domain",
                          "facet",
                          "termRef"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "extensionId",
                      "extendsRef"
                    ],
                    "additionalProperties": false
                  },
                  "changeReason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "term",
                  "ref"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "registration": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "term": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "owner": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "vocabulary": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "vocabularyVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "preferredLabel": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "aliases": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "translations": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                              },
                              "additionalProperties": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "provenance": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "broaderTermIds": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "narrowerTermIds": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "relatedTermIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "applicability": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "lifecycle": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "state": {
                                      "type": "string",
                                      "const": "active"
                                    }
                                  },
                                  "required": [
                                    "state"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "state": {
                                      "type": "string",
                                      "const": "deprecated"
                                    },
                                    "replacementTermId": {
                                      "anyOf": [
                                        {
                                          "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)$"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "migrationRule": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "state",
                                    "replacementTermId",
                                    "migrationRule"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "owner",
                            "vocabulary",
                            "vocabularyVersion",
                            "preferredLabel",
                            "aliases",
                            "translations",
                            "provenance",
                            "broaderTermIds",
                            "narrowerTermIds",
                            "relatedTermIds",
                            "applicability",
                            "lifecycle"
                          ],
                          "additionalProperties": false
                        },
                        "ref": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "facet": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "termRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "domain",
                            "facet",
                            "termRef"
                          ],
                          "additionalProperties": false
                        },
                        "extension": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "extensionId": {
                                  "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)$"
                                },
                                "extendsRef": {
                                  "type": "object",
                                  "properties": {
                                    "domain": {
                                      "type": "string",
                                      "pattern": "^[a-z][a-z0-9-]*$"
                                    },
                                    "facet": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "termRef": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "domain",
                                    "facet",
                                    "termRef"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "extensionId",
                                "extendsRef"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "term",
                        "ref",
                        "extension"
                      ],
                      "additionalProperties": false
                    },
                    "facetClass": {
                      "type": "string",
                      "enum": [
                        "core",
                        "extension"
                      ]
                    }
                  },
                  "required": [
                    "registration",
                    "facetClass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/taxonomy": {
      "get": {
        "operationId": "readTaxonomyCoverage",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignments": {
                      "maxItems": 5000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "target": {
                            "type": "object",
                            "properties": {
                              "recordKind": {
                                "type": "string",
                                "enum": [
                                  "work",
                                  "segment",
                                  "entity",
                                  "runtime-event",
                                  "observation",
                                  "interpretation",
                                  "craft-hypothesis",
                                  "creator-statement"
                                ]
                              },
                              "recordId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "recordKind",
                              "recordId"
                            ],
                            "additionalProperties": false
                          },
                          "termId": {
                            "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)$"
                          },
                          "origin": {
                            "type": "string",
                            "enum": [
                              "human",
                              "analyzer",
                              "imported"
                            ]
                          },
                          "source": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "systemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "version": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                },
                                "required": [
                                  "systemId",
                                  "version"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "withdrawal": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "withdrawnAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "withdrawnBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "withdrawnAt",
                                  "withdrawnBy",
                                  "reason"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "target",
                          "termId",
                          "origin",
                          "source",
                          "rationale",
                          "withdrawal"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "passes": {
                      "maxItems": 5000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "target": {
                            "type": "object",
                            "properties": {
                              "recordKind": {
                                "type": "string",
                                "enum": [
                                  "work",
                                  "segment",
                                  "entity",
                                  "runtime-event",
                                  "observation",
                                  "interpretation",
                                  "craft-hypothesis",
                                  "creator-statement"
                                ]
                              },
                              "recordId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "recordKind",
                              "recordId"
                            ],
                            "additionalProperties": false
                          },
                          "vocabularyVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "firstTaggedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "lastTaggedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "passCount": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "envelope",
                          "target",
                          "vocabularyVersion",
                          "firstTaggedAt",
                          "lastTaggedAt",
                          "passCount"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "assignments",
                    "passes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/taxonomy/assignments": {
      "post": {
        "operationId": "assignTaxonomyTerm",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "target": {
                    "type": "object",
                    "properties": {
                      "recordKind": {
                        "type": "string",
                        "enum": [
                          "work",
                          "segment",
                          "entity",
                          "runtime-event",
                          "observation",
                          "interpretation",
                          "craft-hypothesis",
                          "creator-statement"
                        ]
                      },
                      "recordId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "recordKind",
                      "recordId"
                    ],
                    "additionalProperties": false
                  },
                  "termId": {
                    "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)$"
                  },
                  "origin": {
                    "type": "string",
                    "enum": [
                      "human",
                      "analyzer",
                      "imported"
                    ]
                  },
                  "source": {
                    "type": "object",
                    "properties": {
                      "systemId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "version": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "systemId",
                      "version"
                    ],
                    "additionalProperties": false
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "target",
                  "termId",
                  "origin",
                  "rationale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "target": {
                          "type": "object",
                          "properties": {
                            "recordKind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "segment",
                                "entity",
                                "runtime-event",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement"
                              ]
                            },
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "recordKind",
                            "recordId"
                          ],
                          "additionalProperties": false
                        },
                        "termId": {
                          "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)$"
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "human",
                            "analyzer",
                            "imported"
                          ]
                        },
                        "source": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "systemId",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "withdrawal": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "withdrawnAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "withdrawnBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "withdrawnAt",
                                "withdrawnBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "target",
                        "termId",
                        "origin",
                        "source",
                        "rationale",
                        "withdrawal"
                      ],
                      "additionalProperties": false
                    },
                    "pass": {
                      "type": "object",
                      "properties": {
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "target": {
                          "type": "object",
                          "properties": {
                            "recordKind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "segment",
                                "entity",
                                "runtime-event",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement"
                              ]
                            },
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "recordKind",
                            "recordId"
                          ],
                          "additionalProperties": false
                        },
                        "vocabularyVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "firstTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "lastTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "passCount": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "envelope",
                        "target",
                        "vocabularyVersion",
                        "firstTaggedAt",
                        "lastTaggedAt",
                        "passCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "assignment",
                    "pass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/taxonomy/assignments/{assignmentId}/withdraw": {
      "post": {
        "operationId": "withdrawTaxonomyAssignment",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "target": {
                          "type": "object",
                          "properties": {
                            "recordKind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "segment",
                                "entity",
                                "runtime-event",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement"
                              ]
                            },
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "recordKind",
                            "recordId"
                          ],
                          "additionalProperties": false
                        },
                        "termId": {
                          "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)$"
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "human",
                            "analyzer",
                            "imported"
                          ]
                        },
                        "source": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "version": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "systemId",
                                "version"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "withdrawal": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "withdrawnAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "withdrawnBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "withdrawnAt",
                                "withdrawnBy",
                                "reason"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "target",
                        "termId",
                        "origin",
                        "source",
                        "rationale",
                        "withdrawal"
                      ],
                      "additionalProperties": false
                    },
                    "pass": {
                      "type": "object",
                      "properties": {
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "target": {
                          "type": "object",
                          "properties": {
                            "recordKind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "segment",
                                "entity",
                                "runtime-event",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement"
                              ]
                            },
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "recordKind",
                            "recordId"
                          ],
                          "additionalProperties": false
                        },
                        "vocabularyVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "firstTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "lastTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "passCount": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "envelope",
                        "target",
                        "vocabularyVersion",
                        "firstTaggedAt",
                        "lastTaggedAt",
                        "passCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "assignment",
                    "pass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/taxonomy/passes": {
      "post": {
        "operationId": "recordTaxonomyPass",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "target": {
                    "type": "object",
                    "properties": {
                      "recordKind": {
                        "type": "string",
                        "enum": [
                          "work",
                          "segment",
                          "entity",
                          "runtime-event",
                          "observation",
                          "interpretation",
                          "craft-hypothesis",
                          "creator-statement"
                        ]
                      },
                      "recordId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "recordKind",
                      "recordId"
                    ],
                    "additionalProperties": false
                  },
                  "vocabularyVersion": {
                    "type": "string",
                    "pattern": "^\\d+\\.\\d+\\.\\d+$"
                  }
                },
                "required": [
                  "target",
                  "vocabularyVersion"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "pass": {
                      "type": "object",
                      "properties": {
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "target": {
                          "type": "object",
                          "properties": {
                            "recordKind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "segment",
                                "entity",
                                "runtime-event",
                                "observation",
                                "interpretation",
                                "craft-hypothesis",
                                "creator-statement"
                              ]
                            },
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "recordKind",
                            "recordId"
                          ],
                          "additionalProperties": false
                        },
                        "vocabularyVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "firstTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "lastTaggedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "passCount": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "envelope",
                        "target",
                        "vocabularyVersion",
                        "firstTaggedAt",
                        "lastTaggedAt",
                        "passCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "pass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/extensions/lens-packages": {
      "get": {
        "operationId": "listLensPackages",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "packages": {
                      "maxItems": 500,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "packageId": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                          },
                          "packageVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "lensId": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                          },
                          "lensDefinitionVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "publisher": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "first-party",
                                  "third-party"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "accountableContact": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "kind",
                              "id",
                              "accountableContact"
                            ],
                            "additionalProperties": false
                          },
                          "signature": {
                            "type": "object",
                            "properties": {
                              "algorithm": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              },
                              "keyId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "signatureB64": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "signedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "canonicalization": {
                                "type": "string",
                                "const": "sorted-json-v1"
                              }
                            },
                            "required": [
                              "algorithm",
                              "keyId",
                              "signatureB64",
                              "signedAt",
                              "canonicalization"
                            ],
                            "additionalProperties": false
                          },
                          "sandbox": {
                            "type": "object",
                            "properties": {
                              "isolation": {
                                "type": "string",
                                "enum": [
                                  "worker",
                                  "wasm",
                                  "container",
                                  "remote-isolate"
                                ]
                              },
                              "maxMemoryMb": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 65536
                              },
                              "maxCpuMs": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 3600000
                              },
                              "maxWallMs": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 3600000
                              },
                              "networkPolicy": {
                                "type": "string",
                                "enum": [
                                  "none",
                                  "allowlist"
                                ]
                              },
                              "egressAllowlist": {
                                "default": [],
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                }
                              }
                            },
                            "required": [
                              "isolation",
                              "maxMemoryMb",
                              "maxCpuMs",
                              "maxWallMs",
                              "networkPolicy",
                              "egressAllowlist"
                            ],
                            "additionalProperties": false
                          },
                          "requestedPrivileges": {
                            "default": [],
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "grantedPrivileges": {
                            "default": [],
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "permittedSourceTypes": {
                            "minItems": 1,
                            "maxItems": 10,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "film",
                                "video",
                                "game",
                                "document",
                                "image",
                                "audio",
                                "3d-scene"
                              ]
                            }
                          },
                          "permittedRightsActions": {
                            "minItems": 1,
                            "maxItems": 12,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "playback",
                                "frame-extraction",
                                "proxy-generation",
                                "transcription",
                                "embedding",
                                "model-analysis",
                                "collaboration",
                                "teaching",
                                "publication",
                                "export",
                                "model-training",
                                "project-transfer"
                              ]
                            }
                          },
                          "outputSchemaRefs": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "costClass": {
                            "type": "string",
                            "enum": [
                              "trivial",
                              "light",
                              "moderate",
                              "heavy",
                              "reference"
                            ]
                          },
                          "maxCostUsdPerRun": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000
                          },
                          "requiredObservabilitySignals": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "conformance": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "pending",
                                  "passed",
                                  "failed"
                                ]
                              },
                              "suiteId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "conformanceVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "testedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "status",
                              "suiteId",
                              "conformanceVersion"
                            ],
                            "additionalProperties": false
                          },
                          "review": {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "string",
                                "enum": [
                                  "pending",
                                  "approved",
                                  "rejected"
                                ]
                              },
                              "reviewedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reviewedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "status"
                            ],
                            "additionalProperties": false
                          },
                          "revocation": {
                            "type": "object",
                            "properties": {
                              "revoked": {
                                "type": "boolean"
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "revoked"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "packageId",
                          "packageVersion",
                          "lensId",
                          "lensDefinitionVersion",
                          "publisher",
                          "signature",
                          "sandbox",
                          "requestedPrivileges",
                          "grantedPrivileges",
                          "permittedSourceTypes",
                          "permittedRightsActions",
                          "outputSchemaRefs",
                          "costClass",
                          "maxCostUsdPerRun",
                          "requiredObservabilitySignals",
                          "conformance",
                          "review",
                          "revocation"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "packages"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "registerLensPackage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "package": {
                    "type": "object",
                    "properties": {
                      "packageId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                      },
                      "packageVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "lensId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                      },
                      "lensDefinitionVersion": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      },
                      "publisher": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "first-party",
                              "third-party"
                            ]
                          },
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "accountableContact": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "required": [
                          "kind",
                          "id",
                          "accountableContact"
                        ],
                        "additionalProperties": false
                      },
                      "signature": {
                        "type": "object",
                        "properties": {
                          "algorithm": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "keyId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "signatureB64": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "signedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "canonicalization": {
                            "type": "string",
                            "const": "sorted-json-v1"
                          }
                        },
                        "required": [
                          "algorithm",
                          "keyId",
                          "signatureB64",
                          "signedAt",
                          "canonicalization"
                        ],
                        "additionalProperties": false
                      },
                      "sandbox": {
                        "type": "object",
                        "properties": {
                          "isolation": {
                            "type": "string",
                            "enum": [
                              "worker",
                              "wasm",
                              "container",
                              "remote-isolate"
                            ]
                          },
                          "maxMemoryMb": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 65536
                          },
                          "maxCpuMs": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 3600000
                          },
                          "maxWallMs": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 3600000
                          },
                          "networkPolicy": {
                            "type": "string",
                            "enum": [
                              "none",
                              "allowlist"
                            ]
                          },
                          "egressAllowlist": {
                            "default": [],
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          }
                        },
                        "required": [
                          "isolation",
                          "maxMemoryMb",
                          "maxCpuMs",
                          "maxWallMs",
                          "networkPolicy"
                        ],
                        "additionalProperties": false
                      },
                      "requestedPrivileges": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        }
                      },
                      "grantedPrivileges": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        }
                      },
                      "permittedSourceTypes": {
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "film",
                            "video",
                            "game",
                            "document",
                            "image",
                            "audio",
                            "3d-scene"
                          ]
                        }
                      },
                      "permittedRightsActions": {
                        "minItems": 1,
                        "maxItems": 12,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "playback",
                            "frame-extraction",
                            "proxy-generation",
                            "transcription",
                            "embedding",
                            "model-analysis",
                            "collaboration",
                            "teaching",
                            "publication",
                            "export",
                            "model-training",
                            "project-transfer"
                          ]
                        }
                      },
                      "outputSchemaRefs": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        }
                      },
                      "costClass": {
                        "type": "string",
                        "enum": [
                          "trivial",
                          "light",
                          "moderate",
                          "heavy",
                          "reference"
                        ]
                      },
                      "maxCostUsdPerRun": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 10000
                      },
                      "requiredObservabilitySignals": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        }
                      },
                      "conformance": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "passed",
                              "failed"
                            ]
                          },
                          "suiteId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "conformanceVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          },
                          "testedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "status",
                          "suiteId",
                          "conformanceVersion"
                        ],
                        "additionalProperties": false
                      },
                      "review": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "approved",
                              "rejected"
                            ]
                          },
                          "reviewedBy": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "reviewedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "status"
                        ],
                        "additionalProperties": false
                      },
                      "revocation": {
                        "type": "object",
                        "properties": {
                          "revoked": {
                            "type": "boolean"
                          },
                          "revokedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "revoked"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "packageId",
                      "packageVersion",
                      "lensId",
                      "lensDefinitionVersion",
                      "publisher",
                      "signature",
                      "sandbox",
                      "permittedSourceTypes",
                      "permittedRightsActions",
                      "outputSchemaRefs",
                      "costClass",
                      "maxCostUsdPerRun",
                      "requiredObservabilitySignals",
                      "conformance",
                      "review",
                      "revocation"
                    ],
                    "additionalProperties": false
                  },
                  "suite": {
                    "type": "object",
                    "properties": {
                      "suiteId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "version": {
                        "type": "string",
                        "pattern": "^\\d+\\.\\d+\\.\\d+$"
                      }
                    },
                    "required": [
                      "suiteId",
                      "version"
                    ],
                    "additionalProperties": false
                  },
                  "posture": {
                    "type": "object",
                    "properties": {
                      "signatureVerified": {
                        "type": "boolean"
                      },
                      "machineOutput": {
                        "type": "object",
                        "properties": {
                          "anchored": {
                            "type": "boolean"
                          },
                          "entersUnreviewed": {
                            "type": "boolean"
                          },
                          "writesLayer": {
                            "type": "string",
                            "enum": [
                              "detection",
                              "observation",
                              "interpretation"
                            ]
                          },
                          "visualizations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "visualization": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "alternatives": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                }
                              },
                              "required": [
                                "visualization",
                                "alternatives"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "anchored",
                          "entersUnreviewed",
                          "writesLayer",
                          "visualizations"
                        ],
                        "additionalProperties": false
                      },
                      "quality": {
                        "type": "object",
                        "properties": {
                          "evaluatedOnDeploymentGoldSet": {
                            "type": "boolean"
                          },
                          "goldSetRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "accepted": {
                            "type": "boolean"
                          },
                          "vendorReportedScore": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "evaluatedOnDeploymentGoldSet",
                          "goldSetRef",
                          "accepted"
                        ],
                        "additionalProperties": false
                      },
                      "vocabulary": {
                        "type": "object",
                        "properties": {
                          "deploymentLanguages": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 35
                            }
                          },
                          "terms": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "labels": {
                                  "type": "object",
                                  "propertyNames": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 35
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "plainDefinition": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "id",
                                "labels"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "deploymentLanguages",
                          "terms"
                        ],
                        "additionalProperties": false
                      },
                      "grantedRightsActions": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "permittedRegions": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        }
                      },
                      "placementRegion": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      "operability": {
                        "type": "object",
                        "properties": {
                          "stoppableWithoutDeploy": {
                            "type": "boolean"
                          },
                          "failureMode": {
                            "type": "string",
                            "enum": [
                              "degrades",
                              "fails-closed",
                              "takes-the-request-with-it"
                            ]
                          },
                          "runCeilingEnforcedAtRuntime": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "stoppableWithoutDeploy",
                          "failureMode",
                          "runCeilingEnforcedAtRuntime"
                        ],
                        "additionalProperties": false
                      },
                      "deletion": {
                        "type": "object",
                        "properties": {
                          "revocationExecutableByWorkspace": {
                            "type": "boolean"
                          },
                          "reachesEverywhere": {
                            "type": "boolean"
                          },
                          "cannotReach": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "coveringExecutors": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "acceptedResidualRisk": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "place": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "acceptedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "at": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "place",
                                "acceptedBy",
                                "at",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "revocationExecutableByWorkspace",
                          "reachesEverywhere",
                          "cannotReach"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "signatureVerified",
                      "machineOutput",
                      "quality",
                      "vocabulary",
                      "grantedRightsActions",
                      "operability",
                      "deletion"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "package",
                  "suite",
                  "posture"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "package": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "packageId": {
                          "type": "string",
                          "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                        },
                        "packageVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "lensId": {
                          "type": "string",
                          "pattern": "^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$"
                        },
                        "lensDefinitionVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        },
                        "publisher": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "first-party",
                                "third-party"
                              ]
                            },
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "accountableContact": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "kind",
                            "id",
                            "accountableContact"
                          ],
                          "additionalProperties": false
                        },
                        "signature": {
                          "type": "object",
                          "properties": {
                            "algorithm": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            },
                            "keyId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "signatureB64": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "signedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "canonicalization": {
                              "type": "string",
                              "const": "sorted-json-v1"
                            }
                          },
                          "required": [
                            "algorithm",
                            "keyId",
                            "signatureB64",
                            "signedAt",
                            "canonicalization"
                          ],
                          "additionalProperties": false
                        },
                        "sandbox": {
                          "type": "object",
                          "properties": {
                            "isolation": {
                              "type": "string",
                              "enum": [
                                "worker",
                                "wasm",
                                "container",
                                "remote-isolate"
                              ]
                            },
                            "maxMemoryMb": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 65536
                            },
                            "maxCpuMs": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600000
                            },
                            "maxWallMs": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 3600000
                            },
                            "networkPolicy": {
                              "type": "string",
                              "enum": [
                                "none",
                                "allowlist"
                              ]
                            },
                            "egressAllowlist": {
                              "default": [],
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              }
                            }
                          },
                          "required": [
                            "isolation",
                            "maxMemoryMb",
                            "maxCpuMs",
                            "maxWallMs",
                            "networkPolicy",
                            "egressAllowlist"
                          ],
                          "additionalProperties": false
                        },
                        "requestedPrivileges": {
                          "default": [],
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "grantedPrivileges": {
                          "default": [],
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "permittedSourceTypes": {
                          "minItems": 1,
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "film",
                              "video",
                              "game",
                              "document",
                              "image",
                              "audio",
                              "3d-scene"
                            ]
                          }
                        },
                        "permittedRightsActions": {
                          "minItems": 1,
                          "maxItems": 12,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "playback",
                              "frame-extraction",
                              "proxy-generation",
                              "transcription",
                              "embedding",
                              "model-analysis",
                              "collaboration",
                              "teaching",
                              "publication",
                              "export",
                              "model-training",
                              "project-transfer"
                            ]
                          }
                        },
                        "outputSchemaRefs": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        },
                        "costClass": {
                          "type": "string",
                          "enum": [
                            "trivial",
                            "light",
                            "moderate",
                            "heavy",
                            "reference"
                          ]
                        },
                        "maxCostUsdPerRun": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 10000
                        },
                        "requiredObservabilitySignals": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "conformance": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "pending",
                                "passed",
                                "failed"
                              ]
                            },
                            "suiteId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "conformanceVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "testedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "status",
                            "suiteId",
                            "conformanceVersion"
                          ],
                          "additionalProperties": false
                        },
                        "review": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "pending",
                                "approved",
                                "rejected"
                              ]
                            },
                            "reviewedBy": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "status"
                          ],
                          "additionalProperties": false
                        },
                        "revocation": {
                          "type": "object",
                          "properties": {
                            "revoked": {
                              "type": "boolean"
                            },
                            "revokedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "revoked"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "packageId",
                        "packageVersion",
                        "lensId",
                        "lensDefinitionVersion",
                        "publisher",
                        "signature",
                        "sandbox",
                        "requestedPrivileges",
                        "grantedPrivileges",
                        "permittedSourceTypes",
                        "permittedRightsActions",
                        "outputSchemaRefs",
                        "costClass",
                        "maxCostUsdPerRun",
                        "requiredObservabilitySignals",
                        "conformance",
                        "review",
                        "revocation"
                      ],
                      "additionalProperties": false
                    },
                    "usable": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "package",
                    "usable"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analysis-upgrades": {
      "get": {
        "operationId": "listAnalysisServiceRegister",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "records": {
                      "maxItems": 1000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "systemId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "family": {
                            "type": "string",
                            "enum": [
                              "visual",
                              "motion",
                              "audio",
                              "multimodal",
                              "causal-comparison",
                              "project-aware"
                            ]
                          },
                          "systemIdentity": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "priorShape": {
                            "type": "string",
                            "enum": [
                              "previous-version",
                              "subsumed-systems",
                              "manual-baseline"
                            ]
                          },
                          "outcome": {
                            "type": "string",
                            "enum": [
                              "entered-service",
                              "refused",
                              "pre-existing"
                            ]
                          },
                          "provenBetterThan": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "comparisons": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "incumbentIdentity": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "priorPerformedBy": {
                                  "type": "string",
                                  "enum": [
                                    "machine",
                                    "person"
                                  ]
                                },
                                "goldSetId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "pairedItemCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "discordantCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "candidateOnlyCorrect": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "pValue": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "sliceRegressions": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "incumbentIdentity",
                                "priorPerformedBy",
                                "goldSetId",
                                "pairedItemCount",
                                "discordantCount",
                                "candidateOnlyCorrect",
                                "pValue",
                                "sliceRegressions"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "shortfalls": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "undeclared-predecessor",
                                    "unmeasured-predecessor",
                                    "evidence-about-another-system",
                                    "false-first-release",
                                    "wrong-evidence-plane",
                                    "not-comparable",
                                    "contaminated",
                                    "insufficient-discordance",
                                    "regressed",
                                    "slice-regression",
                                    "no-added-value",
                                    "cost-without-value",
                                    "incumbent-never-in-service",
                                    "incumbent-not-the-serving-identity"
                                  ]
                                },
                                "statement": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "reason",
                                "statement"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "decidedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "decidedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "enteredServiceAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededByIdentity": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "gateVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "systemId",
                          "family",
                          "systemIdentity",
                          "priorShape",
                          "outcome",
                          "provenBetterThan",
                          "comparisons",
                          "shortfalls",
                          "decidedAt",
                          "decidedByUserId",
                          "enteredServiceAt",
                          "supersededAt",
                          "supersededByIdentity",
                          "gateVersion"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "observed": {
                      "maxItems": 1000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "systemId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "identity": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "processorName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "producingRunCount": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "nonProducingRunCount": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "firstProducedAt": {
                            "type": "string"
                          },
                          "lastProducedAt": {
                            "type": "string"
                          },
                          "projectIds": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "systemId",
                          "identity",
                          "processorName",
                          "producingRunCount",
                          "nonProducingRunCount",
                          "firstProducedAt",
                          "lastProducedAt",
                          "projectIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "undeclared": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "systemId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "family": {
                            "type": "string",
                            "enum": [
                              "visual",
                              "motion",
                              "audio",
                              "multimodal",
                              "causal-comparison",
                              "project-aware"
                            ]
                          },
                          "registryIdentity": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "recordedIdentity": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "undeclared-upgrade",
                              "unregistered-system"
                            ]
                          },
                          "statement": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "systemId",
                          "family",
                          "registryIdentity",
                          "recordedIdentity",
                          "reason",
                          "statement"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "records",
                    "observed",
                    "undeclared"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "decideAnalysisUpgrade",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "systemId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "family": {
                    "type": "string",
                    "enum": [
                      "visual",
                      "motion",
                      "audio",
                      "multimodal",
                      "causal-comparison",
                      "project-aware"
                    ]
                  },
                  "candidateVersion": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "replaces": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  },
                  "evidence": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "priorSystemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "priorPerformedBy": {
                          "type": "string",
                          "enum": [
                            "machine",
                            "person"
                          ]
                        },
                        "goldSetId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "incumbentGoldSetId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "incumbentVersion": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "usedForCandidateTuning": {
                          "type": "boolean"
                        },
                        "outcomes": {
                          "minItems": 1,
                          "maxItems": 100000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "itemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "incumbentCorrect": {
                                "type": "boolean"
                              },
                              "candidateCorrect": {
                                "type": "boolean"
                              },
                              "slice": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "itemId",
                              "incumbentCorrect",
                              "candidateCorrect"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "priorSystemId",
                        "priorPerformedBy",
                        "goldSetId",
                        "incumbentGoldSetId",
                        "incumbentVersion",
                        "usedForCandidateTuning",
                        "outcomes"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "systemId",
                  "family",
                  "candidateVersion",
                  "replaces",
                  "evidence"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "systemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "family": {
                          "type": "string",
                          "enum": [
                            "visual",
                            "motion",
                            "audio",
                            "multimodal",
                            "causal-comparison",
                            "project-aware"
                          ]
                        },
                        "systemIdentity": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "priorShape": {
                          "type": "string",
                          "enum": [
                            "previous-version",
                            "subsumed-systems",
                            "manual-baseline"
                          ]
                        },
                        "outcome": {
                          "type": "string",
                          "enum": [
                            "entered-service",
                            "refused",
                            "pre-existing"
                          ]
                        },
                        "provenBetterThan": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "comparisons": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "priorSystemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "incumbentIdentity": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "priorPerformedBy": {
                                "type": "string",
                                "enum": [
                                  "machine",
                                  "person"
                                ]
                              },
                              "goldSetId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pairedItemCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "discordantCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "candidateOnlyCorrect": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "pValue": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sliceRegressions": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "priorSystemId",
                              "incumbentIdentity",
                              "priorPerformedBy",
                              "goldSetId",
                              "pairedItemCount",
                              "discordantCount",
                              "candidateOnlyCorrect",
                              "pValue",
                              "sliceRegressions"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "shortfalls": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "priorSystemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "enum": [
                                  "undeclared-predecessor",
                                  "unmeasured-predecessor",
                                  "evidence-about-another-system",
                                  "false-first-release",
                                  "wrong-evidence-plane",
                                  "not-comparable",
                                  "contaminated",
                                  "insufficient-discordance",
                                  "regressed",
                                  "slice-regression",
                                  "no-added-value",
                                  "cost-without-value",
                                  "incumbent-never-in-service",
                                  "incumbent-not-the-serving-identity"
                                ]
                              },
                              "statement": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "priorSystemId",
                              "reason",
                              "statement"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "decidedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "decidedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "enteredServiceAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededByIdentity": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "gateVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "systemId",
                        "family",
                        "systemIdentity",
                        "priorShape",
                        "outcome",
                        "provenBetterThan",
                        "comparisons",
                        "shortfalls",
                        "decidedAt",
                        "decidedByUserId",
                        "enteredServiceAt",
                        "supersededAt",
                        "supersededByIdentity",
                        "gateVersion"
                      ],
                      "additionalProperties": false
                    },
                    "superseded": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "systemId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "family": {
                            "type": "string",
                            "enum": [
                              "visual",
                              "motion",
                              "audio",
                              "multimodal",
                              "causal-comparison",
                              "project-aware"
                            ]
                          },
                          "systemIdentity": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "priorShape": {
                            "type": "string",
                            "enum": [
                              "previous-version",
                              "subsumed-systems",
                              "manual-baseline"
                            ]
                          },
                          "outcome": {
                            "type": "string",
                            "enum": [
                              "entered-service",
                              "refused",
                              "pre-existing"
                            ]
                          },
                          "provenBetterThan": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "comparisons": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "incumbentIdentity": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "priorPerformedBy": {
                                  "type": "string",
                                  "enum": [
                                    "machine",
                                    "person"
                                  ]
                                },
                                "goldSetId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "pairedItemCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "discordantCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "candidateOnlyCorrect": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "pValue": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "sliceRegressions": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "incumbentIdentity",
                                "priorPerformedBy",
                                "goldSetId",
                                "pairedItemCount",
                                "discordantCount",
                                "candidateOnlyCorrect",
                                "pValue",
                                "sliceRegressions"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "shortfalls": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "undeclared-predecessor",
                                    "unmeasured-predecessor",
                                    "evidence-about-another-system",
                                    "false-first-release",
                                    "wrong-evidence-plane",
                                    "not-comparable",
                                    "contaminated",
                                    "insufficient-discordance",
                                    "regressed",
                                    "slice-regression",
                                    "no-added-value",
                                    "cost-without-value",
                                    "incumbent-never-in-service",
                                    "incumbent-not-the-serving-identity"
                                  ]
                                },
                                "statement": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "reason",
                                "statement"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "decidedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "decidedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "enteredServiceAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededByIdentity": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "gateVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "systemId",
                          "family",
                          "systemIdentity",
                          "priorShape",
                          "outcome",
                          "provenBetterThan",
                          "comparisons",
                          "shortfalls",
                          "decidedAt",
                          "decidedByUserId",
                          "enteredServiceAt",
                          "supersededAt",
                          "supersededByIdentity",
                          "gateVersion"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "record",
                    "superseded"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/analysis-baselines": {
      "post": {
        "operationId": "recordAnalysisBaseline",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "systemId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "family": {
                    "type": "string",
                    "enum": [
                      "visual",
                      "motion",
                      "audio",
                      "multimodal",
                      "causal-comparison",
                      "project-aware"
                    ]
                  },
                  "systemIdentity": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  }
                },
                "required": [
                  "systemId",
                  "family",
                  "systemIdentity"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "systemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "family": {
                          "type": "string",
                          "enum": [
                            "visual",
                            "motion",
                            "audio",
                            "multimodal",
                            "causal-comparison",
                            "project-aware"
                          ]
                        },
                        "systemIdentity": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "priorShape": {
                          "type": "string",
                          "enum": [
                            "previous-version",
                            "subsumed-systems",
                            "manual-baseline"
                          ]
                        },
                        "outcome": {
                          "type": "string",
                          "enum": [
                            "entered-service",
                            "refused",
                            "pre-existing"
                          ]
                        },
                        "provenBetterThan": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "comparisons": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "priorSystemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "incumbentIdentity": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "priorPerformedBy": {
                                "type": "string",
                                "enum": [
                                  "machine",
                                  "person"
                                ]
                              },
                              "goldSetId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "pairedItemCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "discordantCount": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "candidateOnlyCorrect": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000000
                              },
                              "pValue": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "sliceRegressions": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "priorSystemId",
                              "incumbentIdentity",
                              "priorPerformedBy",
                              "goldSetId",
                              "pairedItemCount",
                              "discordantCount",
                              "candidateOnlyCorrect",
                              "pValue",
                              "sliceRegressions"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "shortfalls": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "priorSystemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "reason": {
                                "type": "string",
                                "enum": [
                                  "undeclared-predecessor",
                                  "unmeasured-predecessor",
                                  "evidence-about-another-system",
                                  "false-first-release",
                                  "wrong-evidence-plane",
                                  "not-comparable",
                                  "contaminated",
                                  "insufficient-discordance",
                                  "regressed",
                                  "slice-regression",
                                  "no-added-value",
                                  "cost-without-value",
                                  "incumbent-never-in-service",
                                  "incumbent-not-the-serving-identity"
                                ]
                              },
                              "statement": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "priorSystemId",
                              "reason",
                              "statement"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "decidedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "decidedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "enteredServiceAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "supersededByIdentity": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "gateVersion": {
                          "type": "string",
                          "pattern": "^\\d+\\.\\d+\\.\\d+$"
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "systemId",
                        "family",
                        "systemIdentity",
                        "priorShape",
                        "outcome",
                        "provenBetterThan",
                        "comparisons",
                        "shortfalls",
                        "decidedAt",
                        "decidedByUserId",
                        "enteredServiceAt",
                        "supersededAt",
                        "supersededByIdentity",
                        "gateVersion"
                      ],
                      "additionalProperties": false
                    },
                    "superseded": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "systemId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "family": {
                            "type": "string",
                            "enum": [
                              "visual",
                              "motion",
                              "audio",
                              "multimodal",
                              "causal-comparison",
                              "project-aware"
                            ]
                          },
                          "systemIdentity": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "priorShape": {
                            "type": "string",
                            "enum": [
                              "previous-version",
                              "subsumed-systems",
                              "manual-baseline"
                            ]
                          },
                          "outcome": {
                            "type": "string",
                            "enum": [
                              "entered-service",
                              "refused",
                              "pre-existing"
                            ]
                          },
                          "provenBetterThan": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "comparisons": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "incumbentIdentity": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "priorPerformedBy": {
                                  "type": "string",
                                  "enum": [
                                    "machine",
                                    "person"
                                  ]
                                },
                                "goldSetId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "pairedItemCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "discordantCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "candidateOnlyCorrect": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                },
                                "pValue": {
                                  "anyOf": [
                                    {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "sliceRegressions": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "incumbentIdentity",
                                "priorPerformedBy",
                                "goldSetId",
                                "pairedItemCount",
                                "discordantCount",
                                "candidateOnlyCorrect",
                                "pValue",
                                "sliceRegressions"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "shortfalls": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "priorSystemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "undeclared-predecessor",
                                    "unmeasured-predecessor",
                                    "evidence-about-another-system",
                                    "false-first-release",
                                    "wrong-evidence-plane",
                                    "not-comparable",
                                    "contaminated",
                                    "insufficient-discordance",
                                    "regressed",
                                    "slice-regression",
                                    "no-added-value",
                                    "cost-without-value",
                                    "incumbent-never-in-service",
                                    "incumbent-not-the-serving-identity"
                                  ]
                                },
                                "statement": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "priorSystemId",
                                "reason",
                                "statement"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "decidedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "decidedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "enteredServiceAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "supersededByIdentity": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "gateVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "systemId",
                          "family",
                          "systemIdentity",
                          "priorShape",
                          "outcome",
                          "provenBetterThan",
                          "comparisons",
                          "shortfalls",
                          "decidedAt",
                          "decidedByUserId",
                          "enteredServiceAt",
                          "supersededAt",
                          "supersededByIdentity",
                          "gateVersion"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "record",
                    "superseded"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/deployment-option": {
      "get": {
        "operationId": "readDeploymentOption",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "option": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "environment": {
                          "type": "string",
                          "enum": [
                            "dev",
                            "staging",
                            "prod"
                          ]
                        },
                        "placement": {
                          "type": "object",
                          "properties": {
                            "environment": {
                              "type": "string",
                              "enum": [
                                "dev",
                                "staging",
                                "prod"
                              ]
                            },
                            "tenantRegion": {
                              "type": "string",
                              "enum": [
                                "us",
                                "eu",
                                "apac"
                              ]
                            },
                            "storePlacements": {
                              "minItems": 1,
                              "maxItems": 7,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "storeClass": {
                                    "type": "string",
                                    "enum": [
                                      "object",
                                      "relational",
                                      "search-index",
                                      "vector-index",
                                      "graph-index",
                                      "backup",
                                      "cache"
                                    ]
                                  },
                                  "region": {
                                    "type": "string",
                                    "enum": [
                                      "us",
                                      "eu",
                                      "apac"
                                    ]
                                  }
                                },
                                "required": [
                                  "storeClass",
                                  "region"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "backupRegion": {
                              "type": "string",
                              "enum": [
                                "us",
                                "eu",
                                "apac"
                              ]
                            },
                            "modelRoute": {
                              "type": "object",
                              "properties": {
                                "region": {
                                  "type": "string",
                                  "enum": [
                                    "us",
                                    "eu",
                                    "apac"
                                  ]
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "region",
                                "provider"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "environment",
                            "tenantRegion",
                            "storePlacements",
                            "backupRegion"
                          ],
                          "additionalProperties": false
                        },
                        "residency": {
                          "type": "object",
                          "properties": {
                            "disasterRecoveryEgressPermitted": {
                              "type": "boolean"
                            },
                            "crossRegionModelEgressPermitted": {
                              "type": "boolean"
                            },
                            "permittedRegions": {
                              "minItems": 1,
                              "maxItems": 3,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "us",
                                  "eu",
                                  "apac"
                                ]
                              }
                            }
                          },
                          "required": [
                            "disasterRecoveryEgressPermitted",
                            "crossRegionModelEgressPermitted",
                            "permittedRegions"
                          ],
                          "additionalProperties": false
                        },
                        "executionLocale": {
                          "type": "string",
                          "enum": [
                            "platform-hosted",
                            "tenant-managed",
                            "institution-local",
                            "device-local"
                          ]
                        },
                        "localExecution": {
                          "type": "object",
                          "properties": {
                            "approvedLicences": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "packages": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "packageId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sha256": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "licence": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "capabilities": {
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "approved": {
                                    "type": "boolean"
                                  },
                                  "evaluationRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "packageId",
                                  "modelId",
                                  "modelVersion",
                                  "sha256",
                                  "licence",
                                  "capabilities",
                                  "approved",
                                  "evaluationRef"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "approvedLicences",
                            "packages"
                          ],
                          "additionalProperties": false
                        },
                        "adapterContract": {
                          "type": "object",
                          "properties": {
                            "contractVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            },
                            "refusalShape": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "derivedRecordStore": {
                              "type": "string",
                              "enum": [
                                "object",
                                "relational",
                                "search-index",
                                "vector-index",
                                "graph-index",
                                "backup",
                                "cache"
                              ]
                            }
                          },
                          "required": [
                            "contractVersion",
                            "refusalShape",
                            "derivedRecordStore"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "adoptedByUserId",
                        "adoptedAt",
                        "environment",
                        "placement",
                        "residency",
                        "executionLocale",
                        "localExecution",
                        "adapterContract"
                      ],
                      "additionalProperties": false
                    },
                    "issuesUnderCurrentFloors": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "placement",
                              "residency-narrowing",
                              "institutional-residency",
                              "execution-locale",
                              "local-packages",
                              "adapter-contract"
                            ]
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "dimension",
                          "code",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "residencyNotes": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "territory": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "region": {
                            "type": "string",
                            "enum": [
                              "us",
                              "eu",
                              "apac"
                            ]
                          },
                          "restsIn": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "basis": {
                            "type": "string",
                            "enum": [
                              "in-territory",
                              "eea-internal-market",
                              "adequacy-decision"
                            ]
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "territory",
                          "region",
                          "restsIn",
                          "basis",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "option",
                    "issuesUnderCurrentFloors",
                    "residencyNotes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "adoptDeploymentOption",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "environment": {
                    "type": "string",
                    "enum": [
                      "dev",
                      "staging",
                      "prod"
                    ]
                  },
                  "placement": {
                    "type": "object",
                    "properties": {
                      "environment": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "staging",
                          "prod"
                        ]
                      },
                      "tenantRegion": {
                        "type": "string",
                        "enum": [
                          "us",
                          "eu",
                          "apac"
                        ]
                      },
                      "storePlacements": {
                        "minItems": 1,
                        "maxItems": 7,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "storeClass": {
                              "type": "string",
                              "enum": [
                                "object",
                                "relational",
                                "search-index",
                                "vector-index",
                                "graph-index",
                                "backup",
                                "cache"
                              ]
                            },
                            "region": {
                              "type": "string",
                              "enum": [
                                "us",
                                "eu",
                                "apac"
                              ]
                            }
                          },
                          "required": [
                            "storeClass",
                            "region"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "backupRegion": {
                        "type": "string",
                        "enum": [
                          "us",
                          "eu",
                          "apac"
                        ]
                      },
                      "modelRoute": {
                        "type": "object",
                        "properties": {
                          "region": {
                            "type": "string",
                            "enum": [
                              "us",
                              "eu",
                              "apac"
                            ]
                          },
                          "provider": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "required": [
                          "region",
                          "provider"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "environment",
                      "tenantRegion",
                      "storePlacements",
                      "backupRegion"
                    ],
                    "additionalProperties": false
                  },
                  "residency": {
                    "type": "object",
                    "properties": {
                      "disasterRecoveryEgressPermitted": {
                        "type": "boolean"
                      },
                      "crossRegionModelEgressPermitted": {
                        "type": "boolean"
                      },
                      "permittedRegions": {
                        "minItems": 1,
                        "maxItems": 3,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "us",
                            "eu",
                            "apac"
                          ]
                        }
                      }
                    },
                    "required": [
                      "disasterRecoveryEgressPermitted",
                      "crossRegionModelEgressPermitted",
                      "permittedRegions"
                    ],
                    "additionalProperties": false
                  },
                  "executionLocale": {
                    "type": "string",
                    "enum": [
                      "platform-hosted",
                      "tenant-managed",
                      "institution-local",
                      "device-local"
                    ]
                  },
                  "localExecution": {
                    "type": "object",
                    "properties": {
                      "approvedLicences": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      },
                      "packages": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "packageId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "modelId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "modelVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "sha256": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "licence": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "capabilities": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "approved": {
                              "type": "boolean"
                            },
                            "evaluationRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "packageId",
                            "modelId",
                            "modelVersion",
                            "sha256",
                            "licence",
                            "capabilities",
                            "approved",
                            "evaluationRef"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "approvedLicences",
                      "packages"
                    ],
                    "additionalProperties": false
                  },
                  "adapterContract": {
                    "type": "object",
                    "properties": {
                      "contractVersion": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      },
                      "refusalShape": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "derivedRecordStore": {
                        "type": "string",
                        "enum": [
                          "object",
                          "relational",
                          "search-index",
                          "vector-index",
                          "graph-index",
                          "backup",
                          "cache"
                        ]
                      }
                    },
                    "required": [
                      "contractVersion",
                      "refusalShape",
                      "derivedRecordStore"
                    ],
                    "additionalProperties": false
                  },
                  "residencyPosture": {
                    "type": "object",
                    "properties": {
                      "grantedRightsActions": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "exercisedRightsActions": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "operability": {
                        "type": "object",
                        "properties": {
                          "declaredSignals": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "stoppableWithoutDeploy": {
                            "type": "boolean"
                          },
                          "failureMode": {
                            "type": "string",
                            "enum": [
                              "degrades",
                              "fails-closed",
                              "takes-the-request-with-it"
                            ]
                          },
                          "runCeilingEnforcedAtRuntime": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "declaredSignals",
                          "stoppableWithoutDeploy",
                          "failureMode",
                          "runCeilingEnforcedAtRuntime"
                        ],
                        "additionalProperties": false
                      },
                      "deletion": {
                        "type": "object",
                        "properties": {
                          "revocationExecutableByWorkspace": {
                            "type": "boolean"
                          },
                          "reachesEverywhere": {
                            "type": "boolean"
                          },
                          "cannotReach": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "coveringExecutors": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "acceptedResidualRisk": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "place": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "acceptedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "at": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "place",
                                "acceptedBy",
                                "at",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "revocationExecutableByWorkspace",
                          "reachesEverywhere",
                          "cannotReach"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "grantedRightsActions",
                      "exercisedRightsActions",
                      "operability",
                      "deletion"
                    ],
                    "additionalProperties": false
                  },
                  "localModelPostures": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    },
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "machineOutput": {
                          "type": "object",
                          "properties": {
                            "anchored": {
                              "type": "boolean"
                            },
                            "entersUnreviewed": {
                              "type": "boolean"
                            },
                            "writesLayer": {
                              "type": "string",
                              "enum": [
                                "detection",
                                "observation",
                                "interpretation"
                              ]
                            },
                            "visualizations": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "visualization": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "alternatives": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    }
                                  }
                                },
                                "required": [
                                  "visualization",
                                  "alternatives"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "anchored",
                            "entersUnreviewed",
                            "writesLayer",
                            "visualizations"
                          ],
                          "additionalProperties": false
                        },
                        "evaluatedOnDeploymentGoldSet": {
                          "type": "boolean"
                        },
                        "grantedRightsActions": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          }
                        },
                        "exercisedRightsActions": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          }
                        },
                        "operability": {
                          "type": "object",
                          "properties": {
                            "declaredSignals": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "stoppableWithoutDeploy": {
                              "type": "boolean"
                            },
                            "failureMode": {
                              "type": "string",
                              "enum": [
                                "degrades",
                                "fails-closed",
                                "takes-the-request-with-it"
                              ]
                            },
                            "runCeilingEnforcedAtRuntime": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "declaredSignals",
                            "stoppableWithoutDeploy",
                            "failureMode",
                            "runCeilingEnforcedAtRuntime"
                          ],
                          "additionalProperties": false
                        },
                        "deletion": {
                          "type": "object",
                          "properties": {
                            "revocationExecutableByWorkspace": {
                              "type": "boolean"
                            },
                            "reachesEverywhere": {
                              "type": "boolean"
                            },
                            "cannotReach": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              }
                            },
                            "coveringExecutors": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "acceptedResidualRisk": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "place": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "acceptedBy": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "at": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "reason": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "place",
                                  "acceptedBy",
                                  "at",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "revocationExecutableByWorkspace",
                            "reachesEverywhere",
                            "cannotReach"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "machineOutput",
                        "evaluatedOnDeploymentGoldSet",
                        "grantedRightsActions",
                        "exercisedRightsActions",
                        "operability",
                        "deletion"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "environment",
                  "placement",
                  "residency",
                  "executionLocale",
                  "localExecution",
                  "adapterContract",
                  "residencyPosture",
                  "localModelPostures"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "option": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedByUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "adoptedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "environment": {
                          "type": "string",
                          "enum": [
                            "dev",
                            "staging",
                            "prod"
                          ]
                        },
                        "placement": {
                          "type": "object",
                          "properties": {
                            "environment": {
                              "type": "string",
                              "enum": [
                                "dev",
                                "staging",
                                "prod"
                              ]
                            },
                            "tenantRegion": {
                              "type": "string",
                              "enum": [
                                "us",
                                "eu",
                                "apac"
                              ]
                            },
                            "storePlacements": {
                              "minItems": 1,
                              "maxItems": 7,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "storeClass": {
                                    "type": "string",
                                    "enum": [
                                      "object",
                                      "relational",
                                      "search-index",
                                      "vector-index",
                                      "graph-index",
                                      "backup",
                                      "cache"
                                    ]
                                  },
                                  "region": {
                                    "type": "string",
                                    "enum": [
                                      "us",
                                      "eu",
                                      "apac"
                                    ]
                                  }
                                },
                                "required": [
                                  "storeClass",
                                  "region"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "backupRegion": {
                              "type": "string",
                              "enum": [
                                "us",
                                "eu",
                                "apac"
                              ]
                            },
                            "modelRoute": {
                              "type": "object",
                              "properties": {
                                "region": {
                                  "type": "string",
                                  "enum": [
                                    "us",
                                    "eu",
                                    "apac"
                                  ]
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "region",
                                "provider"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "environment",
                            "tenantRegion",
                            "storePlacements",
                            "backupRegion"
                          ],
                          "additionalProperties": false
                        },
                        "residency": {
                          "type": "object",
                          "properties": {
                            "disasterRecoveryEgressPermitted": {
                              "type": "boolean"
                            },
                            "crossRegionModelEgressPermitted": {
                              "type": "boolean"
                            },
                            "permittedRegions": {
                              "minItems": 1,
                              "maxItems": 3,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "us",
                                  "eu",
                                  "apac"
                                ]
                              }
                            }
                          },
                          "required": [
                            "disasterRecoveryEgressPermitted",
                            "crossRegionModelEgressPermitted",
                            "permittedRegions"
                          ],
                          "additionalProperties": false
                        },
                        "executionLocale": {
                          "type": "string",
                          "enum": [
                            "platform-hosted",
                            "tenant-managed",
                            "institution-local",
                            "device-local"
                          ]
                        },
                        "localExecution": {
                          "type": "object",
                          "properties": {
                            "approvedLicences": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "packages": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "packageId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "modelId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "modelVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "sha256": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "licence": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "capabilities": {
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    }
                                  },
                                  "approved": {
                                    "type": "boolean"
                                  },
                                  "evaluationRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "packageId",
                                  "modelId",
                                  "modelVersion",
                                  "sha256",
                                  "licence",
                                  "capabilities",
                                  "approved",
                                  "evaluationRef"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "approvedLicences",
                            "packages"
                          ],
                          "additionalProperties": false
                        },
                        "adapterContract": {
                          "type": "object",
                          "properties": {
                            "contractVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            },
                            "refusalShape": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "derivedRecordStore": {
                              "type": "string",
                              "enum": [
                                "object",
                                "relational",
                                "search-index",
                                "vector-index",
                                "graph-index",
                                "backup",
                                "cache"
                              ]
                            }
                          },
                          "required": [
                            "contractVersion",
                            "refusalShape",
                            "derivedRecordStore"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "adoptedByUserId",
                        "adoptedAt",
                        "environment",
                        "placement",
                        "residency",
                        "executionLocale",
                        "localExecution",
                        "adapterContract"
                      ],
                      "additionalProperties": false
                    },
                    "issuesUnderCurrentFloors": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dimension": {
                            "type": "string",
                            "enum": [
                              "placement",
                              "residency-narrowing",
                              "institutional-residency",
                              "execution-locale",
                              "local-packages",
                              "adapter-contract"
                            ]
                          },
                          "code": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "dimension",
                          "code",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "residencyNotes": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "territory": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "region": {
                            "type": "string",
                            "enum": [
                              "us",
                              "eu",
                              "apac"
                            ]
                          },
                          "restsIn": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "basis": {
                            "type": "string",
                            "enum": [
                              "in-territory",
                              "eea-internal-market",
                              "adequacy-decision"
                            ]
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "territory",
                          "region",
                          "restsIn",
                          "basis",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "option",
                    "issuesUnderCurrentFloors",
                    "residencyNotes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/deployment-option/local-runs/authorizations": {
      "post": {
        "operationId": "authorizeLocalRun",
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "editionId": {
                    "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)$"
                  },
                  "runId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "capability": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "fetchedSha256": {
                    "type": "string",
                    "pattern": "^sha256:[0-9a-f]{64}$"
                  },
                  "sandbox": {
                    "type": "string",
                    "enum": [
                      "isolated",
                      "restricted",
                      "open"
                    ]
                  },
                  "limits": {
                    "type": "object",
                    "properties": {
                      "maxMemoryMib": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1048576
                      },
                      "maxWallClockMs": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 86400000
                      }
                    },
                    "required": [
                      "maxMemoryMib",
                      "maxWallClockMs"
                    ],
                    "additionalProperties": false
                  },
                  "device": {
                    "type": "object",
                    "properties": {
                      "deviceId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "availableMemoryMib": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 1048576
                      },
                      "batteryPercent": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "onExternalPower": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "deviceId",
                      "availableMemoryMib",
                      "onExternalPower"
                    ],
                    "additionalProperties": false
                  },
                  "estimatedDurationMs": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 86400000
                  }
                },
                "required": [
                  "editionId",
                  "runId",
                  "packageId",
                  "capability",
                  "fetchedSha256",
                  "sandbox",
                  "limits",
                  "device",
                  "estimatedDurationMs"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "authorization": {
                      "type": "object",
                      "properties": {
                        "allowed": {
                          "type": "boolean"
                        },
                        "reasons": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "sensitivity": {
                          "type": "string",
                          "enum": [
                            "sensitive",
                            "restricted",
                            "ordinary"
                          ]
                        },
                        "requiredSandbox": {
                          "type": "string",
                          "enum": [
                            "isolated",
                            "restricted",
                            "open"
                          ]
                        },
                        "optionRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "expectedSha256": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "analysisRunId": {
                          "anyOf": [
                            {
                              "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)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "allowed",
                        "reasons",
                        "sensitivity",
                        "requiredSandbox",
                        "optionRevision",
                        "expectedSha256",
                        "analysisRunId"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "authorization"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/deployment-option/local-runs": {
      "post": {
        "operationId": "admitLocalRun",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "analysisRunId": {
                    "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)$"
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "deviceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "runId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      },
                      "records": {
                        "maxItems": 1000,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "recordId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "capability": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "runId": {
                                  "type": "string",
                                  "maxLength": 160
                                },
                                "deviceId": {
                                  "type": "string",
                                  "maxLength": 160
                                },
                                "packageId": {
                                  "type": "string",
                                  "maxLength": 160
                                },
                                "modelId": {
                                  "type": "string",
                                  "maxLength": 160
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                "sha256": {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                "sandbox": {
                                  "type": "string",
                                  "enum": [
                                    "isolated",
                                    "restricted",
                                    "open"
                                  ]
                                },
                                "completedAtMs": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "runId",
                                "deviceId",
                                "packageId",
                                "modelId",
                                "modelVersion",
                                "sha256",
                                "sandbox",
                                "completedAtMs"
                              ],
                              "additionalProperties": false
                            },
                            "payload": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {}
                            }
                          },
                          "required": [
                            "recordId",
                            "capability",
                            "provenance",
                            "payload"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "sourceBytes": {}
                    },
                    "required": [
                      "runId",
                      "records"
                    ],
                    "additionalProperties": false
                  },
                  "report": {
                    "type": "object",
                    "properties": {
                      "modelId": {
                        "type": "string",
                        "maxLength": 160
                      },
                      "modelVersion": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "modelSha256": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "counted": {
                        "type": "boolean"
                      },
                      "traceId": {
                        "type": "string",
                        "maxLength": 160
                      },
                      "derivedRecordStore": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 80
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "adapterContractVersion": {
                        "type": "string",
                        "maxLength": 60
                      },
                      "refusalShape": {
                        "type": "string",
                        "maxLength": 120
                      }
                    },
                    "required": [
                      "modelId",
                      "modelVersion",
                      "modelSha256",
                      "counted",
                      "derivedRecordStore",
                      "adapterContractVersion",
                      "refusalShape"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "analysisRunId",
                  "packageId",
                  "deviceId",
                  "payload",
                  "report"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "admission": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "projectId": {
                          "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)$"
                        },
                        "workId": {
                          "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)$"
                        },
                        "optionRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "deviceId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "syncedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "accountability": {
                          "type": "object",
                          "properties": {
                            "runId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "locale": {
                              "type": "string",
                              "enum": [
                                "platform-hosted",
                                "tenant-managed",
                                "institution-local",
                                "device-local"
                              ]
                            },
                            "analysisRunId": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "modelId": {
                              "type": "string",
                              "maxLength": 160
                            },
                            "modelVersion": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "modelSha256": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "evaluationRef": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "counted": {
                              "type": "boolean"
                            },
                            "traceId": {
                              "type": "string",
                              "maxLength": 160
                            },
                            "derivedRecordStore": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "adapterContractVersion": {
                              "type": "string",
                              "maxLength": 60
                            },
                            "refusalShape": {
                              "type": "string",
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "runId",
                            "locale",
                            "analysisRunId",
                            "modelId",
                            "modelVersion",
                            "modelSha256",
                            "evaluationRef",
                            "counted",
                            "derivedRecordStore",
                            "adapterContractVersion",
                            "refusalShape"
                          ],
                          "additionalProperties": false
                        },
                        "admitted": {
                          "type": "boolean"
                        },
                        "reasons": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "admittedRecordIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "staleRecordIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "equivalentFacets": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "provenance",
                              "versioning",
                              "evaluation",
                              "observability",
                              "deletion",
                              "adapter-behavior"
                            ]
                          }
                        },
                        "gaps": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "facet": {
                                "type": "string",
                                "enum": [
                                  "provenance",
                                  "versioning",
                                  "evaluation",
                                  "observability",
                                  "deletion",
                                  "adapter-behavior"
                                ]
                              },
                              "runId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "message": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "facet",
                              "runId",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "localeDifferences": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "baselineRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "projectId",
                        "workId",
                        "optionRevision",
                        "deviceId",
                        "syncedAt",
                        "accountability",
                        "admitted",
                        "reasons",
                        "admittedRecordIds",
                        "staleRecordIds",
                        "equivalentFacets",
                        "gaps",
                        "localeDifferences",
                        "baselineRef"
                      ],
                      "additionalProperties": false
                    },
                    "alreadyDecided": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "admission",
                    "alreadyDecided"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "admission": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "tenantId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "projectId": {
                          "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)$"
                        },
                        "workId": {
                          "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)$"
                        },
                        "optionRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "deviceId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "syncedAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "accountability": {
                          "type": "object",
                          "properties": {
                            "runId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "locale": {
                              "type": "string",
                              "enum": [
                                "platform-hosted",
                                "tenant-managed",
                                "institution-local",
                                "device-local"
                              ]
                            },
                            "analysisRunId": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "modelId": {
                              "type": "string",
                              "maxLength": 160
                            },
                            "modelVersion": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "modelSha256": {
                              "type": "string",
                              "maxLength": 80
                            },
                            "evaluationRef": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "counted": {
                              "type": "boolean"
                            },
                            "traceId": {
                              "type": "string",
                              "maxLength": 160
                            },
                            "derivedRecordStore": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "adapterContractVersion": {
                              "type": "string",
                              "maxLength": 60
                            },
                            "refusalShape": {
                              "type": "string",
                              "maxLength": 120
                            }
                          },
                          "required": [
                            "runId",
                            "locale",
                            "analysisRunId",
                            "modelId",
                            "modelVersion",
                            "modelSha256",
                            "evaluationRef",
                            "counted",
                            "derivedRecordStore",
                            "adapterContractVersion",
                            "refusalShape"
                          ],
                          "additionalProperties": false
                        },
                        "admitted": {
                          "type": "boolean"
                        },
                        "reasons": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "admittedRecordIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "staleRecordIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "equivalentFacets": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "provenance",
                              "versioning",
                              "evaluation",
                              "observability",
                              "deletion",
                              "adapter-behavior"
                            ]
                          }
                        },
                        "gaps": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "facet": {
                                "type": "string",
                                "enum": [
                                  "provenance",
                                  "versioning",
                                  "evaluation",
                                  "observability",
                                  "deletion",
                                  "adapter-behavior"
                                ]
                              },
                              "runId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "message": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "facet",
                              "runId",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "localeDifferences": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "baselineRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "tenantId",
                        "projectId",
                        "workId",
                        "optionRevision",
                        "deviceId",
                        "syncedAt",
                        "accountability",
                        "admitted",
                        "reasons",
                        "admittedRecordIds",
                        "staleRecordIds",
                        "equivalentFacets",
                        "gaps",
                        "localeDifferences",
                        "baselineRef"
                      ],
                      "additionalProperties": false
                    },
                    "alreadyDecided": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "admission",
                    "alreadyDecided"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/local-runs": {
      "get": {
        "operationId": "listLocalRunAdmissions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "admissions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "tenantId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "projectId": {
                            "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)$"
                          },
                          "workId": {
                            "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)$"
                          },
                          "optionRevision": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "deviceId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "syncedAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "accountability": {
                            "type": "object",
                            "properties": {
                              "runId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "locale": {
                                "type": "string",
                                "enum": [
                                  "platform-hosted",
                                  "tenant-managed",
                                  "institution-local",
                                  "device-local"
                                ]
                              },
                              "analysisRunId": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "modelId": {
                                "type": "string",
                                "maxLength": 160
                              },
                              "modelVersion": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "modelSha256": {
                                "type": "string",
                                "maxLength": 80
                              },
                              "evaluationRef": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "counted": {
                                "type": "boolean"
                              },
                              "traceId": {
                                "type": "string",
                                "maxLength": 160
                              },
                              "derivedRecordStore": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "maxLength": 80
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "adapterContractVersion": {
                                "type": "string",
                                "maxLength": 60
                              },
                              "refusalShape": {
                                "type": "string",
                                "maxLength": 120
                              }
                            },
                            "required": [
                              "runId",
                              "locale",
                              "analysisRunId",
                              "modelId",
                              "modelVersion",
                              "modelSha256",
                              "evaluationRef",
                              "counted",
                              "derivedRecordStore",
                              "adapterContractVersion",
                              "refusalShape"
                            ],
                            "additionalProperties": false
                          },
                          "admitted": {
                            "type": "boolean"
                          },
                          "reasons": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "admittedRecordIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "staleRecordIds": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "equivalentFacets": {
                            "maxItems": 6,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "provenance",
                                "versioning",
                                "evaluation",
                                "observability",
                                "deletion",
                                "adapter-behavior"
                              ]
                            }
                          },
                          "gaps": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "facet": {
                                  "type": "string",
                                  "enum": [
                                    "provenance",
                                    "versioning",
                                    "evaluation",
                                    "observability",
                                    "deletion",
                                    "adapter-behavior"
                                  ]
                                },
                                "runId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "message": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "facet",
                                "runId",
                                "message"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "localeDifferences": {
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "baselineRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "tenantId",
                          "projectId",
                          "workId",
                          "optionRevision",
                          "deviceId",
                          "syncedAt",
                          "accountability",
                          "admitted",
                          "reasons",
                          "admittedRecordIds",
                          "staleRecordIds",
                          "equivalentFacets",
                          "gaps",
                          "localeDifferences",
                          "baselineRef"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "admissions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/reports/preflight": {
      "get": {
        "operationId": "reportPreflight",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "projectId": {
                      "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)$"
                    },
                    "resolvedAt": {
                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    "items": {
                      "maxItems": 1000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "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)$"
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "disposition": {
                            "type": "string",
                            "enum": [
                              "included",
                              "transformed",
                              "linked",
                              "excluded",
                              "redacted",
                              "downscaled",
                              "expiring",
                              "blocked"
                            ]
                          },
                          "reason": {
                            "type": "string",
                            "maxLength": 2000
                          },
                          "expiresAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "workId",
                          "label",
                          "disposition"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "counts": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "included",
                          "transformed",
                          "linked",
                          "excluded",
                          "redacted",
                          "downscaled",
                          "expiring",
                          "blocked"
                        ]
                      },
                      "additionalProperties": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "required": [
                        "included",
                        "transformed",
                        "linked",
                        "excluded",
                        "redacted",
                        "downscaled",
                        "expiring",
                        "blocked"
                      ]
                    },
                    "subjectCandidates": {
                      "maxItems": 1000,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "workId",
                          "title"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "kinds": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "markdown",
                              "pdf",
                              "presentation",
                              "json",
                              "csv",
                              "contact-sheet",
                              "marker",
                              "manifest",
                              "teaching-pack",
                              "audit",
                              "evaluation"
                            ]
                          },
                          "summary": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "mediaType": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "rightsAction": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "carriesSourceMaterial": {
                            "type": "boolean"
                          },
                          "available": {
                            "type": "boolean"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          }
                        },
                        "required": [
                          "kind",
                          "summary",
                          "mediaType",
                          "rightsAction",
                          "carriesSourceMaterial",
                          "available"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "earliestGrantExpiry": {
                      "anyOf": [
                        {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "shortestDerivativeRetentionDays": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "projectId",
                    "resolvedAt",
                    "items",
                    "counts",
                    "subjectCandidates",
                    "kinds",
                    "earliestGrantExpiry",
                    "shortestDerivativeRetentionDays"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/reports": {
      "post": {
        "operationId": "generateReport",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "markdown",
                      "pdf",
                      "presentation",
                      "json",
                      "csv",
                      "contact-sheet",
                      "marker",
                      "manifest",
                      "teaching-pack",
                      "audit",
                      "evaluation"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "audience": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "destination": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "accessWindowDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 365
                  },
                  "locale": {
                    "type": "string",
                    "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                  },
                  "subjectWorkId": {
                    "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)$"
                  },
                  "destinationFormat": {
                    "type": "string",
                    "enum": [
                      "edl-cmx3600",
                      "fcpxml",
                      "aaf",
                      "premiere-xml",
                      "resolve-marker-csv"
                    ]
                  }
                },
                "required": [
                  "kind",
                  "territory",
                  "audience",
                  "destination",
                  "accessWindowDays",
                  "locale"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "markdown",
                            "pdf",
                            "presentation",
                            "json",
                            "csv",
                            "contact-sheet",
                            "marker",
                            "manifest",
                            "teaching-pack",
                            "audit",
                            "evaluation"
                          ]
                        },
                        "subjectWorkId": {
                          "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)$"
                        },
                        "locale": {
                          "type": "string",
                          "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                        },
                        "destinationFormat": {
                          "type": "string",
                          "enum": [
                            "edl-cmx3600",
                            "fcpxml",
                            "aaf",
                            "premiere-xml",
                            "resolve-marker-csv"
                          ]
                        },
                        "artifact": {
                          "type": "object",
                          "properties": {
                            "objectKey": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            "mediaType": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "extension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 16
                            },
                            "encoding": {
                              "type": "string",
                              "enum": [
                                "utf-8-text",
                                "json",
                                "base64-binary"
                              ]
                            },
                            "byteLength": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "contentHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            }
                          },
                          "required": [
                            "objectKey",
                            "mediaType",
                            "extension",
                            "encoding",
                            "byteLength",
                            "contentHash"
                          ],
                          "additionalProperties": false
                        },
                        "manifest": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "workId": {
                                "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)$"
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "disposition": {
                                "type": "string",
                                "enum": [
                                  "included",
                                  "transformed",
                                  "linked",
                                  "excluded",
                                  "redacted",
                                  "downscaled",
                                  "expiring",
                                  "blocked"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "expiresAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "workId",
                              "label",
                              "disposition"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "identity": {
                          "type": "object",
                          "properties": {
                            "actor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "destination": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "grantIds": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "policyVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "sourceDependencies": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "workId": {
                                    "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)$"
                                  },
                                  "editionId": {
                                    "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)$"
                                  },
                                  "technicalRevisionHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  }
                                },
                                "required": [
                                  "workId",
                                  "editionId",
                                  "technicalRevisionHash"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "issuedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "expiresAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "expiryBoundBy": {
                              "type": "string",
                              "enum": [
                                "requested-window",
                                "grant-expiry",
                                "derivative-retention"
                              ]
                            }
                          },
                          "required": [
                            "actor",
                            "audience",
                            "destination",
                            "grantIds",
                            "policyVersion",
                            "sourceDependencies",
                            "issuedAt",
                            "expiresAt",
                            "expiryBoundBy"
                          ],
                          "additionalProperties": false
                        },
                        "signature": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "algorithm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60
                                },
                                "keyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "signatureB64": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "signedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "canonicalization": {
                                  "type": "string",
                                  "const": "sorted-json-v1"
                                }
                              },
                              "required": [
                                "algorithm",
                                "keyId",
                                "signatureB64",
                                "signedAt",
                                "canonicalization"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "notices": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "includedWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "withheldWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "blockedWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "citations": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "records": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "includedWorks",
                            "withheldWorks",
                            "blockedWorks",
                            "citations",
                            "records"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "kind",
                        "locale",
                        "artifact",
                        "manifest",
                        "identity",
                        "signature",
                        "notices",
                        "counts"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "report"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listStudyReports",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reports": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "markdown",
                              "pdf",
                              "presentation",
                              "json",
                              "csv",
                              "contact-sheet",
                              "marker",
                              "manifest",
                              "teaching-pack",
                              "audit",
                              "evaluation"
                            ]
                          },
                          "subjectWorkId": {
                            "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)$"
                          },
                          "locale": {
                            "type": "string",
                            "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                          },
                          "destinationFormat": {
                            "type": "string",
                            "enum": [
                              "edl-cmx3600",
                              "fcpxml",
                              "aaf",
                              "premiere-xml",
                              "resolve-marker-csv"
                            ]
                          },
                          "artifact": {
                            "type": "object",
                            "properties": {
                              "objectKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "mediaType": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "extension": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 16
                              },
                              "encoding": {
                                "type": "string",
                                "enum": [
                                  "utf-8-text",
                                  "json",
                                  "base64-binary"
                                ]
                              },
                              "byteLength": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "contentHash": {
                                "type": "string",
                                "pattern": "^sha256:[0-9a-f]{64}$"
                              }
                            },
                            "required": [
                              "objectKey",
                              "mediaType",
                              "extension",
                              "encoding",
                              "byteLength",
                              "contentHash"
                            ],
                            "additionalProperties": false
                          },
                          "manifest": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "workId": {
                                  "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)$"
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "disposition": {
                                  "type": "string",
                                  "enum": [
                                    "included",
                                    "transformed",
                                    "linked",
                                    "excluded",
                                    "redacted",
                                    "downscaled",
                                    "expiring",
                                    "blocked"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "maxLength": 2000
                                },
                                "expiresAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "workId",
                                "label",
                                "disposition"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "identity": {
                            "type": "object",
                            "properties": {
                              "actor": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "audience": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "destination": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "grantIds": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "policyVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "sourceDependencies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "workId": {
                                      "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)$"
                                    },
                                    "editionId": {
                                      "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)$"
                                    },
                                    "technicalRevisionHash": {
                                      "type": "string",
                                      "pattern": "^sha256:[0-9a-f]{64}$"
                                    }
                                  },
                                  "required": [
                                    "workId",
                                    "editionId",
                                    "technicalRevisionHash"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "issuedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiresAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "expiryBoundBy": {
                                "type": "string",
                                "enum": [
                                  "requested-window",
                                  "grant-expiry",
                                  "derivative-retention"
                                ]
                              }
                            },
                            "required": [
                              "actor",
                              "audience",
                              "destination",
                              "grantIds",
                              "policyVersion",
                              "sourceDependencies",
                              "issuedAt",
                              "expiresAt",
                              "expiryBoundBy"
                            ],
                            "additionalProperties": false
                          },
                          "signature": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "algorithm": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  },
                                  "keyId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "signatureB64": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  },
                                  "signedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "canonicalization": {
                                    "type": "string",
                                    "const": "sorted-json-v1"
                                  }
                                },
                                "required": [
                                  "algorithm",
                                  "keyId",
                                  "signatureB64",
                                  "signedAt",
                                  "canonicalization"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "notices": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "counts": {
                            "type": "object",
                            "properties": {
                              "includedWorks": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "withheldWorks": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "blockedWorks": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "citations": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "records": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "includedWorks",
                              "withheldWorks",
                              "blockedWorks",
                              "citations",
                              "records"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "kind",
                          "locale",
                          "artifact",
                          "manifest",
                          "identity",
                          "signature",
                          "notices",
                          "counts"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "reports"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/reports/{reportId}": {
      "get": {
        "operationId": "readStudyReport",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "786f52dd-0137-49c2-a422-c7e07f2f3add"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "markdown",
                            "pdf",
                            "presentation",
                            "json",
                            "csv",
                            "contact-sheet",
                            "marker",
                            "manifest",
                            "teaching-pack",
                            "audit",
                            "evaluation"
                          ]
                        },
                        "subjectWorkId": {
                          "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)$"
                        },
                        "locale": {
                          "type": "string",
                          "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
                        },
                        "destinationFormat": {
                          "type": "string",
                          "enum": [
                            "edl-cmx3600",
                            "fcpxml",
                            "aaf",
                            "premiere-xml",
                            "resolve-marker-csv"
                          ]
                        },
                        "artifact": {
                          "type": "object",
                          "properties": {
                            "objectKey": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            },
                            "mediaType": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "extension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 16
                            },
                            "encoding": {
                              "type": "string",
                              "enum": [
                                "utf-8-text",
                                "json",
                                "base64-binary"
                              ]
                            },
                            "byteLength": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "contentHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            }
                          },
                          "required": [
                            "objectKey",
                            "mediaType",
                            "extension",
                            "encoding",
                            "byteLength",
                            "contentHash"
                          ],
                          "additionalProperties": false
                        },
                        "manifest": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "workId": {
                                "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)$"
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "disposition": {
                                "type": "string",
                                "enum": [
                                  "included",
                                  "transformed",
                                  "linked",
                                  "excluded",
                                  "redacted",
                                  "downscaled",
                                  "expiring",
                                  "blocked"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "expiresAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "workId",
                              "label",
                              "disposition"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "identity": {
                          "type": "object",
                          "properties": {
                            "actor": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "destination": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "grantIds": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "policyVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "sourceDependencies": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "workId": {
                                    "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)$"
                                  },
                                  "editionId": {
                                    "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)$"
                                  },
                                  "technicalRevisionHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  }
                                },
                                "required": [
                                  "workId",
                                  "editionId",
                                  "technicalRevisionHash"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "issuedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "expiresAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "expiryBoundBy": {
                              "type": "string",
                              "enum": [
                                "requested-window",
                                "grant-expiry",
                                "derivative-retention"
                              ]
                            }
                          },
                          "required": [
                            "actor",
                            "audience",
                            "destination",
                            "grantIds",
                            "policyVersion",
                            "sourceDependencies",
                            "issuedAt",
                            "expiresAt",
                            "expiryBoundBy"
                          ],
                          "additionalProperties": false
                        },
                        "signature": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "algorithm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60
                                },
                                "keyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "signatureB64": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "signedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "canonicalization": {
                                  "type": "string",
                                  "const": "sorted-json-v1"
                                }
                              },
                              "required": [
                                "algorithm",
                                "keyId",
                                "signatureB64",
                                "signedAt",
                                "canonicalization"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "notices": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "counts": {
                          "type": "object",
                          "properties": {
                            "includedWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "withheldWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "blockedWorks": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "citations": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "records": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "includedWorks",
                            "withheldWorks",
                            "blockedWorks",
                            "citations",
                            "records"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "kind",
                        "locale",
                        "artifact",
                        "manifest",
                        "identity",
                        "signature",
                        "notices",
                        "counts"
                      ],
                      "additionalProperties": false
                    },
                    "live": {
                      "type": "boolean"
                    },
                    "lapsedNotice": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "report",
                    "live"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/reports/{reportId}/content": {
      "get": {
        "operationId": "downloadStudyReport",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "786f52dd-0137-49c2-a422-c7e07f2f3add"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reportId": {
                      "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)$"
                    },
                    "mediaType": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "url": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 4000
                    },
                    "expiresAt": {
                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    "live": {
                      "type": "boolean"
                    },
                    "lapsedNotice": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "reportId",
                    "mediaType",
                    "expiresAt",
                    "live"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "410": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "reportId": {
                      "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)$"
                    },
                    "mediaType": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "url": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 4000
                    },
                    "expiresAt": {
                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    "live": {
                      "type": "boolean"
                    },
                    "lapsedNotice": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "reportId",
                    "mediaType",
                    "expiresAt",
                    "live"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/study-sets": {
      "post": {
        "operationId": "authorStudySet",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "audience": {
                    "type": "string",
                    "enum": [
                      "named-learners",
                      "class",
                      "institution",
                      "public"
                    ]
                  },
                  "opensAt": {
                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "closesAt": {
                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "spoilerFree": {
                    "type": "boolean"
                  },
                  "allowedDerivatives": {
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "thumbnail",
                        "excerpt",
                        "still-frame",
                        "transcript",
                        "annotation-overlay",
                        "downloadable-copy"
                      ]
                    }
                  },
                  "items": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "itemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "editionId": {
                          "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)$"
                        },
                        "rightsGrantId": {
                          "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)$"
                        },
                        "spoilerBearing": {
                          "type": "boolean"
                        },
                        "learnerOwnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 300
                        }
                      },
                      "required": [
                        "itemId",
                        "editionId",
                        "rightsGrantId",
                        "spoilerBearing"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rosterLearnerUserIds": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "release": {
                    "type": "object",
                    "properties": {
                      "rule": {
                        "type": "string",
                        "enum": [
                          "at-window-open",
                          "after-blind-submission",
                          "after-cohort-threshold",
                          "on-teacher-release"
                        ]
                      },
                      "blindPassAssignmentId": {
                        "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)$"
                      },
                      "cohortThreshold": {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 1
                      },
                      "waitUntil": {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "required": [
                      "rule"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "audience",
                  "opensAt",
                  "closesAt",
                  "spoilerFree",
                  "allowedDerivatives",
                  "items",
                  "rosterLearnerUserIds",
                  "release"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "set": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "audience": {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        "opensAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "closesAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "spoilerFree": {
                          "type": "boolean"
                        },
                        "allowedDerivatives": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "excerpt",
                              "still-frame",
                              "transcript",
                              "annotation-overlay",
                              "downloadable-copy"
                            ]
                          }
                        },
                        "items": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "itemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "editionId": {
                                "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)$"
                              },
                              "rightsGrantId": {
                                "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)$"
                              },
                              "spoilerBearing": {
                                "type": "boolean"
                              },
                              "learnerOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "itemId",
                              "editionId",
                              "rightsGrantId",
                              "spoilerBearing"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rosterLearnerUserIds": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "release": {
                          "type": "object",
                          "properties": {
                            "rule": {
                              "type": "string",
                              "enum": [
                                "at-window-open",
                                "after-blind-submission",
                                "after-cohort-threshold",
                                "on-teacher-release"
                              ]
                            },
                            "blindPassAssignmentId": {
                              "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)$"
                            },
                            "cohortThreshold": {
                              "type": "number",
                              "exclusiveMinimum": 0,
                              "maximum": 1
                            },
                            "waitUntil": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "rule"
                          ],
                          "additionalProperties": false
                        },
                        "teacherRelease": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "releasedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "releasedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "releasedByUserId",
                                "releasedAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "releaseLog": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "releasedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "underRule": {
                                "type": "string",
                                "enum": [
                                  "at-window-open",
                                  "after-blind-submission",
                                  "after-cohort-threshold",
                                  "on-teacher-release"
                                ]
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "releasedAt",
                              "underRule"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "audience",
                        "opensAt",
                        "closesAt",
                        "spoilerFree",
                        "allowedDerivatives",
                        "items",
                        "rosterLearnerUserIds",
                        "release",
                        "teacherRelease",
                        "releaseLog"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "set"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/study-sets": {
      "get": {
        "operationId": "listStudySets",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "sets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "audience": {
                            "type": "string",
                            "enum": [
                              "named-learners",
                              "class",
                              "institution",
                              "public"
                            ]
                          },
                          "opensAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "closesAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "spoilerFree": {
                            "type": "boolean"
                          },
                          "allowedDerivatives": {
                            "maxItems": 6,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "thumbnail",
                                "excerpt",
                                "still-frame",
                                "transcript",
                                "annotation-overlay",
                                "downloadable-copy"
                              ]
                            }
                          },
                          "items": {
                            "minItems": 1,
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "itemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "editionId": {
                                  "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)$"
                                },
                                "rightsGrantId": {
                                  "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)$"
                                },
                                "spoilerBearing": {
                                  "type": "boolean"
                                },
                                "learnerOwnerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "label": {
                                  "type": "string",
                                  "maxLength": 300
                                }
                              },
                              "required": [
                                "itemId",
                                "editionId",
                                "rightsGrantId",
                                "spoilerBearing"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "rosterLearnerUserIds": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "release": {
                            "type": "object",
                            "properties": {
                              "rule": {
                                "type": "string",
                                "enum": [
                                  "at-window-open",
                                  "after-blind-submission",
                                  "after-cohort-threshold",
                                  "on-teacher-release"
                                ]
                              },
                              "blindPassAssignmentId": {
                                "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)$"
                              },
                              "cohortThreshold": {
                                "type": "number",
                                "exclusiveMinimum": 0,
                                "maximum": 1
                              },
                              "waitUntil": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "rule"
                            ],
                            "additionalProperties": false
                          },
                          "teacherRelease": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "releasedByUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "releasedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "releasedByUserId",
                                  "releasedAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "releaseLog": {
                            "maxItems": 20000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "learnerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "releasedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "underRule": {
                                  "type": "string",
                                  "enum": [
                                    "at-window-open",
                                    "after-blind-submission",
                                    "after-cohort-threshold",
                                    "on-teacher-release"
                                  ]
                                }
                              },
                              "required": [
                                "learnerUserId",
                                "releasedAt",
                                "underRule"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "title",
                          "audience",
                          "opensAt",
                          "closesAt",
                          "spoilerFree",
                          "allowedDerivatives",
                          "items",
                          "rosterLearnerUserIds",
                          "release",
                          "teacherRelease",
                          "releaseLog"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "sets"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/study-sets/{setId}/update": {
      "post": {
        "operationId": "updateStudySet",
        "parameters": [
          {
            "name": "setId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "7baa9585-74ee-49b2-a664-6e22a13077e5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "audience": {
                    "type": "string",
                    "enum": [
                      "named-learners",
                      "class",
                      "institution",
                      "public"
                    ]
                  },
                  "closesAt": {
                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "spoilerFree": {
                    "type": "boolean"
                  },
                  "allowedDerivatives": {
                    "maxItems": 6,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "thumbnail",
                        "excerpt",
                        "still-frame",
                        "transcript",
                        "annotation-overlay",
                        "downloadable-copy"
                      ]
                    }
                  },
                  "items": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "itemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "editionId": {
                          "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)$"
                        },
                        "rightsGrantId": {
                          "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)$"
                        },
                        "spoilerBearing": {
                          "type": "boolean"
                        },
                        "learnerOwnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 300
                        }
                      },
                      "required": [
                        "itemId",
                        "editionId",
                        "rightsGrantId",
                        "spoilerBearing"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rosterLearnerUserIds": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "release": {
                    "type": "object",
                    "properties": {
                      "rule": {
                        "type": "string",
                        "enum": [
                          "at-window-open",
                          "after-blind-submission",
                          "after-cohort-threshold",
                          "on-teacher-release"
                        ]
                      },
                      "blindPassAssignmentId": {
                        "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)$"
                      },
                      "cohortThreshold": {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 1
                      },
                      "waitUntil": {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      }
                    },
                    "required": [
                      "rule"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "set": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "audience": {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        "opensAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "closesAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "spoilerFree": {
                          "type": "boolean"
                        },
                        "allowedDerivatives": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "excerpt",
                              "still-frame",
                              "transcript",
                              "annotation-overlay",
                              "downloadable-copy"
                            ]
                          }
                        },
                        "items": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "itemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "editionId": {
                                "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)$"
                              },
                              "rightsGrantId": {
                                "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)$"
                              },
                              "spoilerBearing": {
                                "type": "boolean"
                              },
                              "learnerOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "itemId",
                              "editionId",
                              "rightsGrantId",
                              "spoilerBearing"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rosterLearnerUserIds": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "release": {
                          "type": "object",
                          "properties": {
                            "rule": {
                              "type": "string",
                              "enum": [
                                "at-window-open",
                                "after-blind-submission",
                                "after-cohort-threshold",
                                "on-teacher-release"
                              ]
                            },
                            "blindPassAssignmentId": {
                              "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)$"
                            },
                            "cohortThreshold": {
                              "type": "number",
                              "exclusiveMinimum": 0,
                              "maximum": 1
                            },
                            "waitUntil": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "rule"
                          ],
                          "additionalProperties": false
                        },
                        "teacherRelease": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "releasedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "releasedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "releasedByUserId",
                                "releasedAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "releaseLog": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "releasedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "underRule": {
                                "type": "string",
                                "enum": [
                                  "at-window-open",
                                  "after-blind-submission",
                                  "after-cohort-threshold",
                                  "on-teacher-release"
                                ]
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "releasedAt",
                              "underRule"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "audience",
                        "opensAt",
                        "closesAt",
                        "spoilerFree",
                        "allowedDerivatives",
                        "items",
                        "rosterLearnerUserIds",
                        "release",
                        "teacherRelease",
                        "releaseLog"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "set"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/study-sets/{setId}/teacher-release": {
      "post": {
        "operationId": "releaseStudySetByTeacher",
        "parameters": [
          {
            "name": "setId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "7baa9585-74ee-49b2-a664-6e22a13077e5"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "set": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "audience": {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        "opensAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "closesAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "spoilerFree": {
                          "type": "boolean"
                        },
                        "allowedDerivatives": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "excerpt",
                              "still-frame",
                              "transcript",
                              "annotation-overlay",
                              "downloadable-copy"
                            ]
                          }
                        },
                        "items": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "itemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "editionId": {
                                "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)$"
                              },
                              "rightsGrantId": {
                                "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)$"
                              },
                              "spoilerBearing": {
                                "type": "boolean"
                              },
                              "learnerOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "itemId",
                              "editionId",
                              "rightsGrantId",
                              "spoilerBearing"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rosterLearnerUserIds": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "release": {
                          "type": "object",
                          "properties": {
                            "rule": {
                              "type": "string",
                              "enum": [
                                "at-window-open",
                                "after-blind-submission",
                                "after-cohort-threshold",
                                "on-teacher-release"
                              ]
                            },
                            "blindPassAssignmentId": {
                              "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)$"
                            },
                            "cohortThreshold": {
                              "type": "number",
                              "exclusiveMinimum": 0,
                              "maximum": 1
                            },
                            "waitUntil": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "rule"
                          ],
                          "additionalProperties": false
                        },
                        "teacherRelease": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "releasedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "releasedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "releasedByUserId",
                                "releasedAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "releaseLog": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "releasedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "underRule": {
                                "type": "string",
                                "enum": [
                                  "at-window-open",
                                  "after-blind-submission",
                                  "after-cohort-threshold",
                                  "on-teacher-release"
                                ]
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "releasedAt",
                              "underRule"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "audience",
                        "opensAt",
                        "closesAt",
                        "spoilerFree",
                        "allowedDerivatives",
                        "items",
                        "rosterLearnerUserIds",
                        "release",
                        "teacherRelease",
                        "releaseLog"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "set"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/study-sets/{setId}/opening": {
      "get": {
        "operationId": "openStudySet",
        "parameters": [
          {
            "name": "setId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "7baa9585-74ee-49b2-a664-6e22a13077e5"
          },
          {
            "name": "learnerUserId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "released": {
                      "type": "boolean"
                    },
                    "decision": {
                      "type": "object",
                      "properties": {
                        "setId": {
                          "type": "string"
                        },
                        "learnerId": {
                          "type": "string"
                        },
                        "released": {
                          "type": "boolean"
                        },
                        "openedBy": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "window",
                                "own-submission",
                                "cohort-threshold",
                                "wait-expired",
                                "teacher"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "withheldBecause": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "not-on-roster",
                              "window-not-open",
                              "window-closed",
                              "own-blind-pass-outstanding",
                              "cohort-threshold-unmet",
                              "teacher-has-not-released"
                            ]
                          }
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "setId",
                        "learnerId",
                        "released",
                        "openedBy",
                        "withheldBecause",
                        "message"
                      ],
                      "additionalProperties": false
                    },
                    "rightsIssues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "set": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "title": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "named-learners",
                                "class",
                                "institution",
                                "public"
                              ]
                            },
                            "opensAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "closesAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "spoilerFree": {
                              "type": "boolean"
                            },
                            "allowedDerivatives": {
                              "maxItems": 6,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "excerpt",
                                  "still-frame",
                                  "transcript",
                                  "annotation-overlay",
                                  "downloadable-copy"
                                ]
                              }
                            },
                            "items": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "itemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "editionId": {
                                    "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)$"
                                  },
                                  "rightsGrantId": {
                                    "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)$"
                                  },
                                  "spoilerBearing": {
                                    "type": "boolean"
                                  },
                                  "learnerOwnerUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "label": {
                                    "type": "string",
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "itemId",
                                  "editionId",
                                  "rightsGrantId",
                                  "spoilerBearing"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "rosterLearnerUserIds": {
                              "maxItems": 1000,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "release": {
                              "type": "object",
                              "properties": {
                                "rule": {
                                  "type": "string",
                                  "enum": [
                                    "at-window-open",
                                    "after-blind-submission",
                                    "after-cohort-threshold",
                                    "on-teacher-release"
                                  ]
                                },
                                "blindPassAssignmentId": {
                                  "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)$"
                                },
                                "cohortThreshold": {
                                  "type": "number",
                                  "exclusiveMinimum": 0,
                                  "maximum": 1
                                },
                                "waitUntil": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "rule"
                              ],
                              "additionalProperties": false
                            },
                            "teacherRelease": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "releasedByUserId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "releasedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "releasedByUserId",
                                    "releasedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "releaseLog": {
                              "maxItems": 20000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "learnerUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "releasedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "underRule": {
                                    "type": "string",
                                    "enum": [
                                      "at-window-open",
                                      "after-blind-submission",
                                      "after-cohort-threshold",
                                      "on-teacher-release"
                                    ]
                                  }
                                },
                                "required": [
                                  "learnerUserId",
                                  "releasedAt",
                                  "underRule"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "title",
                            "audience",
                            "opensAt",
                            "closesAt",
                            "spoilerFree",
                            "allowedDerivatives",
                            "items",
                            "rosterLearnerUserIds",
                            "release",
                            "teacherRelease",
                            "releaseLog"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "lapsingItems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "lapsesAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "itemId",
                          "lapsesAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "audienceCeiling": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "spoilingUnderBlindPass": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "released",
                    "decision",
                    "rightsIssues",
                    "set",
                    "lapsingItems",
                    "audienceCeiling",
                    "spoilingUnderBlindPass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "recordStudySetRelease",
        "parameters": [
          {
            "name": "setId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "7baa9585-74ee-49b2-a664-6e22a13077e5"
          },
          {
            "name": "learnerUserId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "released": {
                      "type": "boolean"
                    },
                    "decision": {
                      "type": "object",
                      "properties": {
                        "setId": {
                          "type": "string"
                        },
                        "learnerId": {
                          "type": "string"
                        },
                        "released": {
                          "type": "boolean"
                        },
                        "openedBy": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "window",
                                "own-submission",
                                "cohort-threshold",
                                "wait-expired",
                                "teacher"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "withheldBecause": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "not-on-roster",
                              "window-not-open",
                              "window-closed",
                              "own-blind-pass-outstanding",
                              "cohort-threshold-unmet",
                              "teacher-has-not-released"
                            ]
                          }
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "setId",
                        "learnerId",
                        "released",
                        "openedBy",
                        "withheldBecause",
                        "message"
                      ],
                      "additionalProperties": false
                    },
                    "rightsIssues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "set": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "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)$"
                            },
                            "envelope": {
                              "type": "object",
                              "properties": {
                                "schemaVersion": {
                                  "type": "string",
                                  "pattern": "^\\d+\\.\\d+\\.\\d+$"
                                },
                                "tenantId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "projectId": {
                                  "anyOf": [
                                    {
                                      "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)$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "createdBy": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "human"
                                        },
                                        "userId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "userId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "model"
                                        },
                                        "modelId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "modelVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "analysisRunId": {
                                          "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)$"
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "modelId",
                                        "modelVersion"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "imported-system"
                                        },
                                        "systemId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "importBatchId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "systemId"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "collaborative-group"
                                        },
                                        "groupId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        },
                                        "memberUserIds": {
                                          "maxItems": 500,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 160
                                          }
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groupId"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "updatedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "supersedesRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "supersededByRevision": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "provenance": {
                                  "type": "object",
                                  "properties": {
                                    "system": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "context": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "system"
                                  ],
                                  "additionalProperties": false
                                },
                                "deletionState": {
                                  "type": "string",
                                  "enum": [
                                    "active",
                                    "soft-deleted",
                                    "tombstoned",
                                    "legal-hold"
                                  ]
                                },
                                "changeReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "schemaVersion",
                                "tenantId",
                                "projectId",
                                "createdBy",
                                "createdAt",
                                "updatedAt",
                                "revision",
                                "supersedesRevision",
                                "supersededByRevision",
                                "provenance",
                                "deletionState"
                              ],
                              "additionalProperties": false
                            },
                            "projectId": {
                              "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)$"
                            },
                            "title": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "audience": {
                              "type": "string",
                              "enum": [
                                "named-learners",
                                "class",
                                "institution",
                                "public"
                              ]
                            },
                            "opensAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "closesAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "spoilerFree": {
                              "type": "boolean"
                            },
                            "allowedDerivatives": {
                              "maxItems": 6,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "thumbnail",
                                  "excerpt",
                                  "still-frame",
                                  "transcript",
                                  "annotation-overlay",
                                  "downloadable-copy"
                                ]
                              }
                            },
                            "items": {
                              "minItems": 1,
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "itemId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "editionId": {
                                    "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)$"
                                  },
                                  "rightsGrantId": {
                                    "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)$"
                                  },
                                  "spoilerBearing": {
                                    "type": "boolean"
                                  },
                                  "learnerOwnerUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "label": {
                                    "type": "string",
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "itemId",
                                  "editionId",
                                  "rightsGrantId",
                                  "spoilerBearing"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "rosterLearnerUserIds": {
                              "maxItems": 1000,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "release": {
                              "type": "object",
                              "properties": {
                                "rule": {
                                  "type": "string",
                                  "enum": [
                                    "at-window-open",
                                    "after-blind-submission",
                                    "after-cohort-threshold",
                                    "on-teacher-release"
                                  ]
                                },
                                "blindPassAssignmentId": {
                                  "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)$"
                                },
                                "cohortThreshold": {
                                  "type": "number",
                                  "exclusiveMinimum": 0,
                                  "maximum": 1
                                },
                                "waitUntil": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "rule"
                              ],
                              "additionalProperties": false
                            },
                            "teacherRelease": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "releasedByUserId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "releasedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "releasedByUserId",
                                    "releasedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "releaseLog": {
                              "maxItems": 20000,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "learnerUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "releasedAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "underRule": {
                                    "type": "string",
                                    "enum": [
                                      "at-window-open",
                                      "after-blind-submission",
                                      "after-cohort-threshold",
                                      "on-teacher-release"
                                    ]
                                  }
                                },
                                "required": [
                                  "learnerUserId",
                                  "releasedAt",
                                  "underRule"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "id",
                            "envelope",
                            "projectId",
                            "title",
                            "audience",
                            "opensAt",
                            "closesAt",
                            "spoilerFree",
                            "allowedDerivatives",
                            "items",
                            "rosterLearnerUserIds",
                            "release",
                            "teacherRelease",
                            "releaseLog"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "lapsingItems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "lapsesAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "itemId",
                          "lapsesAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "audienceCeiling": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "spoilingUnderBlindPass": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "released",
                    "decision",
                    "rightsIssues",
                    "set",
                    "lapsingItems",
                    "audienceCeiling",
                    "spoilingUnderBlindPass"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/study-sets/{setId}/releases": {
      "get": {
        "operationId": "readStudySetReleases",
        "parameters": [
          {
            "name": "setId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "7baa9585-74ee-49b2-a664-6e22a13077e5"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "set": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "audience": {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        "opensAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "closesAt": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "spoilerFree": {
                          "type": "boolean"
                        },
                        "allowedDerivatives": {
                          "maxItems": 6,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "excerpt",
                              "still-frame",
                              "transcript",
                              "annotation-overlay",
                              "downloadable-copy"
                            ]
                          }
                        },
                        "items": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "itemId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "editionId": {
                                "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)$"
                              },
                              "rightsGrantId": {
                                "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)$"
                              },
                              "spoilerBearing": {
                                "type": "boolean"
                              },
                              "learnerOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "label": {
                                "type": "string",
                                "maxLength": 300
                              }
                            },
                            "required": [
                              "itemId",
                              "editionId",
                              "rightsGrantId",
                              "spoilerBearing"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "rosterLearnerUserIds": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "release": {
                          "type": "object",
                          "properties": {
                            "rule": {
                              "type": "string",
                              "enum": [
                                "at-window-open",
                                "after-blind-submission",
                                "after-cohort-threshold",
                                "on-teacher-release"
                              ]
                            },
                            "blindPassAssignmentId": {
                              "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)$"
                            },
                            "cohortThreshold": {
                              "type": "number",
                              "exclusiveMinimum": 0,
                              "maximum": 1
                            },
                            "waitUntil": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "rule"
                          ],
                          "additionalProperties": false
                        },
                        "teacherRelease": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "releasedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "releasedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "releasedByUserId",
                                "releasedAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "releaseLog": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "releasedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "underRule": {
                                "type": "string",
                                "enum": [
                                  "at-window-open",
                                  "after-blind-submission",
                                  "after-cohort-threshold",
                                  "on-teacher-release"
                                ]
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "releasedAt",
                              "underRule"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "audience",
                        "opensAt",
                        "closesAt",
                        "spoilerFree",
                        "allowedDerivatives",
                        "items",
                        "rosterLearnerUserIds",
                        "release",
                        "teacherRelease",
                        "releaseLog"
                      ],
                      "additionalProperties": false
                    },
                    "openTo": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "reachedUnderRefusedRule": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "learnerId": {
                            "type": "string"
                          },
                          "releasedAt": {
                            "type": "string"
                          },
                          "underRule": {
                            "type": "string",
                            "enum": [
                              "at-window-open",
                              "after-blind-submission",
                              "after-cohort-threshold",
                              "on-teacher-release"
                            ]
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "learnerId",
                          "releasedAt",
                          "underRule",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "lapsingItems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "lapsesAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "itemId",
                          "lapsesAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "audienceCeiling": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "named-learners",
                            "class",
                            "institution",
                            "public"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "rightsIssues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "set",
                    "openTo",
                    "reachedUnderRefusedRule",
                    "lapsingItems",
                    "audienceCeiling",
                    "rightsIssues"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments": {
      "post": {
        "operationId": "setAssignment",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "guided-analysis",
                      "comparison",
                      "exercise",
                      "first-viewing",
                      "peer-review",
                      "portfolio"
                    ]
                  },
                  "schedule": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "self-paced"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "due"
                          },
                          "dueAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "kind",
                          "dueAt"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "window"
                          },
                          "opensAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "dueAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "kind",
                          "opensAt",
                          "dueAt"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "latePolicy": {
                    "type": "string",
                    "enum": [
                      "accepted-unmarked",
                      "accepted-flagged",
                      "refused-after-grace"
                    ]
                  },
                  "graceMinutes": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20160
                  },
                  "collaboration": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "pair",
                      "group",
                      "open"
                    ]
                  },
                  "maxResubmissions": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 50
                  },
                  "roster": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "userId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "learner",
                            "teacher",
                            "mentor",
                            "teaching-assistant",
                            "observer"
                          ]
                        },
                        "accommodations": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          }
                        }
                      },
                      "required": [
                        "userId",
                        "role",
                        "accommodations"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "publication": {
                    "type": "object",
                    "properties": {
                      "exemplarsAllowed": {
                        "type": "boolean"
                      },
                      "consentedLearnerIds": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      },
                      "withdrawnLearnerIds": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      }
                    },
                    "required": [
                      "exemplarsAllowed",
                      "consentedLearnerIds",
                      "withdrawnLearnerIds"
                    ],
                    "additionalProperties": false
                  },
                  "guidedAnalysis": {
                    "type": "object",
                    "properties": {
                      "editionId": {
                        "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)$"
                      },
                      "method": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      },
                      "prompts": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "completionCriteria": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 4000
                      }
                    },
                    "required": [
                      "editionId",
                      "method",
                      "prompts",
                      "completionCriteria"
                    ],
                    "additionalProperties": false
                  },
                  "comparison": {
                    "type": "object",
                    "properties": {
                      "subjectWorkIds": {
                        "minItems": 2,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "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)$"
                        }
                      },
                      "dimension": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1000
                      },
                      "alignmentBasis": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "comparisonSetId": {
                        "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)$"
                      }
                    },
                    "required": [
                      "subjectWorkIds",
                      "dimension",
                      "alignmentBasis"
                    ],
                    "additionalProperties": false
                  },
                  "exercise": {
                    "type": "object",
                    "properties": {
                      "exerciseId": {
                        "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)$"
                      }
                    },
                    "required": [
                      "exerciseId"
                    ],
                    "additionalProperties": false
                  },
                  "firstViewing": {
                    "type": "object",
                    "properties": {
                      "studySetId": {
                        "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)$"
                      },
                      "blindWindowMinutes": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1440
                      },
                      "seekingDisabled": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "studySetId",
                      "blindWindowMinutes",
                      "seekingDisabled"
                    ],
                    "additionalProperties": false
                  },
                  "peerReview": {
                    "type": "object",
                    "properties": {
                      "reviewsPerSubmission": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20
                      },
                      "anonymity": {
                        "type": "string",
                        "enum": [
                          "named",
                          "blind",
                          "double-blind"
                        ]
                      }
                    },
                    "required": [
                      "reviewsPerSubmission",
                      "anonymity"
                    ],
                    "additionalProperties": false
                  },
                  "portfolio": {
                    "type": "object",
                    "properties": {
                      "portfolioId": {
                        "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)$"
                      },
                      "audience": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      }
                    },
                    "required": [
                      "portfolioId",
                      "audience"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "kind",
                  "schedule",
                  "latePolicy",
                  "graceMinutes",
                  "collaboration",
                  "maxResubmissions",
                  "roster"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "assignment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/assignments": {
      "get": {
        "operationId": "listAssignments",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "guided-analysis",
                              "comparison",
                              "exercise",
                              "first-viewing",
                              "peer-review",
                              "portfolio"
                            ]
                          },
                          "schedule": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "self-paced"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "due"
                                  },
                                  "dueAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "dueAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "window"
                                  },
                                  "opensAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  "dueAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "opensAt",
                                  "dueAt"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "latePolicy": {
                            "type": "string",
                            "enum": [
                              "accepted-unmarked",
                              "accepted-flagged",
                              "refused-after-grace"
                            ]
                          },
                          "graceMinutes": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 20160
                          },
                          "collaboration": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "pair",
                              "group",
                              "open"
                            ]
                          },
                          "maxResubmissions": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 50
                          },
                          "roster": {
                            "minItems": 1,
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "role": {
                                  "type": "string",
                                  "enum": [
                                    "learner",
                                    "teacher",
                                    "mentor",
                                    "teaching-assistant",
                                    "observer"
                                  ]
                                },
                                "accommodations": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  }
                                }
                              },
                              "required": [
                                "userId",
                                "role",
                                "accommodations"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "extensions": {
                            "maxItems": 1000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "learnerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "grantedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "grantedByRole": {
                                  "type": "string",
                                  "enum": [
                                    "learner",
                                    "teacher",
                                    "mentor",
                                    "teaching-assistant",
                                    "observer"
                                  ]
                                },
                                "extendedDueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "grantedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "accommodation": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "learnerUserId",
                                "grantedByUserId",
                                "grantedByRole",
                                "extendedDueAt",
                                "grantedAt",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "publication": {
                            "type": "object",
                            "properties": {
                              "exemplarsAllowed": {
                                "type": "boolean"
                              },
                              "consentedLearnerIds": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "withdrawnLearnerIds": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              }
                            },
                            "required": [
                              "exemplarsAllowed",
                              "consentedLearnerIds",
                              "withdrawnLearnerIds"
                            ],
                            "additionalProperties": false
                          },
                          "guidedAnalysis": {
                            "type": "object",
                            "properties": {
                              "editionId": {
                                "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)$"
                              },
                              "method": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "prompts": {
                                "minItems": 1,
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "completionCriteria": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              }
                            },
                            "required": [
                              "editionId",
                              "method",
                              "prompts",
                              "completionCriteria"
                            ],
                            "additionalProperties": false
                          },
                          "comparison": {
                            "type": "object",
                            "properties": {
                              "subjectWorkIds": {
                                "minItems": 2,
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "dimension": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "alignmentBasis": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "comparisonSetId": {
                                "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)$"
                              }
                            },
                            "required": [
                              "subjectWorkIds",
                              "dimension",
                              "alignmentBasis"
                            ],
                            "additionalProperties": false
                          },
                          "exercise": {
                            "type": "object",
                            "properties": {
                              "exerciseId": {
                                "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)$"
                              }
                            },
                            "required": [
                              "exerciseId"
                            ],
                            "additionalProperties": false
                          },
                          "firstViewing": {
                            "type": "object",
                            "properties": {
                              "studySetId": {
                                "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)$"
                              },
                              "blindWindowMinutes": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1440
                              },
                              "seekingDisabled": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "studySetId",
                              "blindWindowMinutes",
                              "seekingDisabled"
                            ],
                            "additionalProperties": false
                          },
                          "peerReview": {
                            "type": "object",
                            "properties": {
                              "reviewsPerSubmission": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 20
                              },
                              "anonymity": {
                                "type": "string",
                                "enum": [
                                  "named",
                                  "blind",
                                  "double-blind"
                                ]
                              }
                            },
                            "required": [
                              "reviewsPerSubmission",
                              "anonymity"
                            ],
                            "additionalProperties": false
                          },
                          "portfolio": {
                            "type": "object",
                            "properties": {
                              "portfolioId": {
                                "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)$"
                              },
                              "audience": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 60
                              }
                            },
                            "required": [
                              "portfolioId",
                              "audience"
                            ],
                            "additionalProperties": false
                          },
                          "submissions": {
                            "maxItems": 5000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "learnerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "submittedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "attemptId": {
                                  "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)$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 100
                                },
                                "collaboratorUserIds": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "gradedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "learnerUserId",
                                "submittedAt",
                                "revision",
                                "collaboratorUserIds"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "peerAllocation": {
                            "maxItems": 20000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "reviewerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "submissionOwnerUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "reviewerUserId",
                                "submissionOwnerUserId"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "title",
                          "kind",
                          "schedule",
                          "latePolicy",
                          "graceMinutes",
                          "collaboration",
                          "maxResubmissions",
                          "roster",
                          "extensions",
                          "publication",
                          "submissions",
                          "peerAllocation"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "assignments"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}": {
      "get": {
        "operationId": "readAssignment",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    },
                    "facts": {
                      "type": "object",
                      "properties": {
                        "exerciseReadyToSet": {
                          "type": "boolean"
                        },
                        "exerciseReasons": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "setIsSpoilerFree": {
                          "type": "boolean"
                        },
                        "participantIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "consentScope": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "exerciseReadyToSet",
                        "exerciseReasons",
                        "setIsSpoilerFree",
                        "participantIds",
                        "consentScope"
                      ],
                      "additionalProperties": false
                    },
                    "setupIssues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "effectiveDueAt": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "holdsTimeAccommodation": {
                      "type": "boolean"
                    },
                    "toReview": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "assignment",
                    "facts",
                    "setupIssues",
                    "effectiveDueAt",
                    "holdsTimeAccommodation",
                    "toReview"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}/amend": {
      "post": {
        "operationId": "amendAssignment",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "schedule": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "self-paced"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "due"
                          },
                          "dueAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "kind",
                          "dueAt"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "window"
                          },
                          "opensAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          },
                          "dueAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "kind",
                          "opensAt",
                          "dueAt"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "latePolicy": {
                    "type": "string",
                    "enum": [
                      "accepted-unmarked",
                      "accepted-flagged",
                      "refused-after-grace"
                    ]
                  },
                  "graceMinutes": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20160
                  },
                  "maxResubmissions": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 50
                  },
                  "roster": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "userId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "learner",
                            "teacher",
                            "mentor",
                            "teaching-assistant",
                            "observer"
                          ]
                        },
                        "accommodations": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          }
                        }
                      },
                      "required": [
                        "userId",
                        "role",
                        "accommodations"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "publication": {
                    "type": "object",
                    "properties": {
                      "exemplarsAllowed": {
                        "type": "boolean"
                      },
                      "consentedLearnerIds": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      },
                      "withdrawnLearnerIds": {
                        "maxItems": 500,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      }
                    },
                    "required": [
                      "exemplarsAllowed",
                      "consentedLearnerIds",
                      "withdrawnLearnerIds"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "assignment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}/extensions": {
      "post": {
        "operationId": "grantAssignmentExtension",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "learnerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "extendedDueAt": {
                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "accommodation": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  }
                },
                "required": [
                  "learnerUserId",
                  "extendedDueAt",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "assignment"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}/submissions": {
      "post": {
        "operationId": "submitToAssignment",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "attemptId": {
                    "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)$"
                  },
                  "collaboratorUserIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "note": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    },
                    "verdict": {
                      "type": "object",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "enum": [
                            "on-time",
                            "within-grace",
                            "late-accepted",
                            "late-flagged",
                            "refused-late",
                            "refused-not-open",
                            "refused-not-on-roster",
                            "refused-collaboration",
                            "refused-resubmission-limit",
                            "refused-regrade-not-reopened"
                          ]
                        },
                        "appliedDueAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "minutesLate": {
                          "type": "number"
                        },
                        "protectedByAccommodation": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "outcome",
                        "appliedDueAt",
                        "minutesLate",
                        "protectedByAccommodation"
                      ],
                      "additionalProperties": false
                    },
                    "effectiveDueAt": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "holdsTimeAccommodation": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "assignment",
                    "verdict",
                    "effectiveDueAt",
                    "holdsTimeAccommodation"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assignments/{assignmentId}/peer-allocation": {
      "post": {
        "operationId": "allocateAssignmentPeerReviews",
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37ee412e-085e-45ba-ac4b-2b9bafa62025"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "assignment": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "guided-analysis",
                            "comparison",
                            "exercise",
                            "first-viewing",
                            "peer-review",
                            "portfolio"
                          ]
                        },
                        "schedule": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "window"
                                },
                                "opensAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "opensAt",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "latePolicy": {
                          "type": "string",
                          "enum": [
                            "accepted-unmarked",
                            "accepted-flagged",
                            "refused-after-grace"
                          ]
                        },
                        "graceMinutes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 20160
                        },
                        "collaboration": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "pair",
                            "group",
                            "open"
                          ]
                        },
                        "maxResubmissions": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 50
                        },
                        "roster": {
                          "minItems": 1,
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "accommodations": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "accommodations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "extensions": {
                          "maxItems": 1000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "grantedByRole": {
                                "type": "string",
                                "enum": [
                                  "learner",
                                  "teacher",
                                  "mentor",
                                  "teaching-assistant",
                                  "observer"
                                ]
                              },
                              "extendedDueAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "grantedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "accommodation": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "grantedByUserId",
                              "grantedByRole",
                              "extendedDueAt",
                              "grantedAt",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publication": {
                          "type": "object",
                          "properties": {
                            "exemplarsAllowed": {
                              "type": "boolean"
                            },
                            "consentedLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "withdrawnLearnerIds": {
                              "maxItems": 500,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            }
                          },
                          "required": [
                            "exemplarsAllowed",
                            "consentedLearnerIds",
                            "withdrawnLearnerIds"
                          ],
                          "additionalProperties": false
                        },
                        "guidedAnalysis": {
                          "type": "object",
                          "properties": {
                            "editionId": {
                              "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)$"
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "prompts": {
                              "minItems": 1,
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "completionCriteria": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            }
                          },
                          "required": [
                            "editionId",
                            "method",
                            "prompts",
                            "completionCriteria"
                          ],
                          "additionalProperties": false
                        },
                        "comparison": {
                          "type": "object",
                          "properties": {
                            "subjectWorkIds": {
                              "minItems": 2,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "dimension": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            },
                            "alignmentBasis": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "comparisonSetId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "subjectWorkIds",
                            "dimension",
                            "alignmentBasis"
                          ],
                          "additionalProperties": false
                        },
                        "exercise": {
                          "type": "object",
                          "properties": {
                            "exerciseId": {
                              "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)$"
                            }
                          },
                          "required": [
                            "exerciseId"
                          ],
                          "additionalProperties": false
                        },
                        "firstViewing": {
                          "type": "object",
                          "properties": {
                            "studySetId": {
                              "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)$"
                            },
                            "blindWindowMinutes": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1440
                            },
                            "seekingDisabled": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "studySetId",
                            "blindWindowMinutes",
                            "seekingDisabled"
                          ],
                          "additionalProperties": false
                        },
                        "peerReview": {
                          "type": "object",
                          "properties": {
                            "reviewsPerSubmission": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 20
                            },
                            "anonymity": {
                              "type": "string",
                              "enum": [
                                "named",
                                "blind",
                                "double-blind"
                              ]
                            }
                          },
                          "required": [
                            "reviewsPerSubmission",
                            "anonymity"
                          ],
                          "additionalProperties": false
                        },
                        "portfolio": {
                          "type": "object",
                          "properties": {
                            "portfolioId": {
                              "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)$"
                            },
                            "audience": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "portfolioId",
                            "audience"
                          ],
                          "additionalProperties": false
                        },
                        "submissions": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "learnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submittedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "attemptId": {
                                "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)$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 100
                              },
                              "collaboratorUserIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "gradedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "learnerUserId",
                              "submittedAt",
                              "revision",
                              "collaboratorUserIds"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "peerAllocation": {
                          "maxItems": 20000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "reviewerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "submissionOwnerUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "reviewerUserId",
                              "submissionOwnerUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "title",
                        "kind",
                        "schedule",
                        "latePolicy",
                        "graceMinutes",
                        "collaboration",
                        "maxResubmissions",
                        "roster",
                        "extensions",
                        "publication",
                        "submissions",
                        "peerAllocation"
                      ],
                      "additionalProperties": false
                    },
                    "pairings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "reviewerUserId": {
                            "type": "string"
                          },
                          "submissionOwnerUserId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "reviewerUserId",
                          "submissionOwnerUserId"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "assignment",
                    "pairings"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios": {
      "post": {
        "operationId": "startPortfolio",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "items": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "itemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "ref": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "question"
                                },
                                "questionId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "questionId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "study"
                                },
                                "observationId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "observationId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "comparison"
                                },
                                "comparisonSetId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "comparisonSetId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "attempt"
                                },
                                "attemptId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "feedback"
                                },
                                "attemptId": {
                                  "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)$"
                                },
                                "feedbackIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 99
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId",
                                "feedbackIndex"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "decision"
                                },
                                "decisionId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "decisionId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "revision"
                                },
                                "attemptId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "sourceVersion": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "followsItemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "itemId",
                        "ref",
                        "sourceVersion"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "narrativeText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50000
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "items",
                  "narrativeText"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listPortfolios",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolios": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "learnerUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "versions": {
                            "minItems": 1,
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "version": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "derivedFromVersion": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "createdAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "items": {
                                  "minItems": 1,
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "itemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "ref": {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "question"
                                              },
                                              "questionId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "questionId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "study"
                                              },
                                              "observationId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "observationId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "comparison"
                                              },
                                              "comparisonSetId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "comparisonSetId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "attempt"
                                              },
                                              "attemptId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "attemptId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "feedback"
                                              },
                                              "attemptId": {
                                                "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)$"
                                              },
                                              "feedbackIndex": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 99
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "attemptId",
                                              "feedbackIndex"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "decision"
                                              },
                                              "decisionId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "decisionId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "revision"
                                              },
                                              "attemptId": {
                                                "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)$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "attemptId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      "sourceVersion": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 9007199254740991
                                      },
                                      "followsItemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "caption": {
                                        "type": "string",
                                        "maxLength": 2000
                                      }
                                    },
                                    "required": [
                                      "itemId",
                                      "ref",
                                      "sourceVersion"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "narrative": {
                                  "type": "object",
                                  "properties": {
                                    "authorKind": {
                                      "type": "string",
                                      "enum": [
                                        "learner",
                                        "mentor",
                                        "generated"
                                      ]
                                    },
                                    "authorId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 50000
                                    }
                                  },
                                  "required": [
                                    "authorKind",
                                    "authorId",
                                    "text"
                                  ],
                                  "additionalProperties": false
                                },
                                "removed": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "itemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "reason": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 2000
                                      }
                                    },
                                    "required": [
                                      "itemId",
                                      "reason"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "published": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "version",
                                "createdAt",
                                "items",
                                "narrative",
                                "removed",
                                "published"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "publications": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "audience": {
                                  "type": "string",
                                  "enum": [
                                    "private",
                                    "mentor",
                                    "class",
                                    "institution",
                                    "public-link",
                                    "public-index"
                                  ]
                                },
                                "publishedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "version": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "consents": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "audience": {
                                        "type": "string",
                                        "enum": [
                                          "private",
                                          "mentor",
                                          "class",
                                          "institution",
                                          "public-link",
                                          "public-index"
                                        ]
                                      },
                                      "grantedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "revokedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "audience",
                                      "grantedAt"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "downstreamCopies": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "kind": {
                                        "type": "string",
                                        "enum": [
                                          "teaching-pack",
                                          "cohort-showcase",
                                          "search-index",
                                          "shared-link",
                                          "exported-file",
                                          "external-mirror"
                                        ]
                                      },
                                      "cleanupState": {
                                        "type": "string",
                                        "enum": [
                                          "pending",
                                          "removed",
                                          "access-blocked",
                                          "expired",
                                          "unrecoverable"
                                        ]
                                      },
                                      "cleanedAt": {
                                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                      },
                                      "noticeGiven": {
                                        "type": "object",
                                        "properties": {
                                          "toParty": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 300
                                          },
                                          "givenAt": {
                                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                          },
                                          "message": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 2000
                                          }
                                        },
                                        "required": [
                                          "toParty",
                                          "givenAt",
                                          "message"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "kind",
                                      "cleanupState"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "revokedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "revocationReason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "audience",
                                "publishedAt",
                                "version",
                                "consents",
                                "downstreamCopies"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "learnerUserId",
                          "title",
                          "versions",
                          "publications"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "portfolios"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}": {
      "get": {
        "operationId": "readPortfolio",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          },
          {
            "name": "viewerAudience",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    },
                    "countsByKind": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "number"
                      }
                    },
                    "dropped": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          },
                          "droppedInVersion": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "itemId",
                          "reason",
                          "droppedInVersion"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "historyIssues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "historicalPins": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "revocations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "audience": {
                            "type": "string",
                            "enum": [
                              "private",
                              "mentor",
                              "class",
                              "institution",
                              "public-link",
                              "public-index"
                            ]
                          },
                          "publishedAt": {
                            "type": "string"
                          },
                          "revokedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "complete": {
                            "type": "boolean"
                          },
                          "outstanding": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "teaching-pack",
                                    "cohort-showcase",
                                    "search-index",
                                    "shared-link",
                                    "exported-file",
                                    "external-mirror"
                                  ]
                                },
                                "cleanupState": {
                                  "type": "string",
                                  "enum": [
                                    "pending",
                                    "removed",
                                    "access-blocked",
                                    "expired",
                                    "unrecoverable"
                                  ]
                                },
                                "cleanedAt": {
                                  "type": "string"
                                },
                                "noticeGiven": {
                                  "type": "object",
                                  "properties": {
                                    "toParty": {
                                      "type": "string"
                                    },
                                    "givenAt": {
                                      "type": "string"
                                    },
                                    "message": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "toParty",
                                    "givenAt",
                                    "message"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "id",
                                "kind",
                                "cleanupState"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "unrecoverable": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "teaching-pack",
                                    "cohort-showcase",
                                    "search-index",
                                    "shared-link",
                                    "exported-file",
                                    "external-mirror"
                                  ]
                                },
                                "cleanupState": {
                                  "type": "string",
                                  "enum": [
                                    "pending",
                                    "removed",
                                    "access-blocked",
                                    "expired",
                                    "unrecoverable"
                                  ]
                                },
                                "cleanedAt": {
                                  "type": "string"
                                },
                                "noticeGiven": {
                                  "type": "object",
                                  "properties": {
                                    "toParty": {
                                      "type": "string"
                                    },
                                    "givenAt": {
                                      "type": "string"
                                    },
                                    "message": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "toParty",
                                    "givenAt",
                                    "message"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "id",
                                "kind",
                                "cleanupState"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "issues": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "field": {
                                  "type": "string"
                                },
                                "message": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "field",
                                "message"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "audience",
                          "publishedAt",
                          "revokedAt",
                          "complete",
                          "outstanding",
                          "unrecoverable",
                          "issues"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "portfolio",
                    "countsByKind",
                    "dropped",
                    "historyIssues",
                    "historicalPins",
                    "revocations"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}/versions": {
      "post": {
        "operationId": "writePortfolioVersion",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "items": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "itemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "ref": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "question"
                                },
                                "questionId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "questionId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "study"
                                },
                                "observationId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "observationId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "comparison"
                                },
                                "comparisonSetId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "comparisonSetId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "attempt"
                                },
                                "attemptId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "feedback"
                                },
                                "attemptId": {
                                  "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)$"
                                },
                                "feedbackIndex": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 99
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId",
                                "feedbackIndex"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "decision"
                                },
                                "decisionId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "decisionId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "revision"
                                },
                                "attemptId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "attemptId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "sourceVersion": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "followsItemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "caption": {
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "itemId",
                        "ref",
                        "sourceVersion"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "narrativeText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50000
                  },
                  "removed": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "itemId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "itemId",
                        "reason"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "items",
                  "narrativeText",
                  "removed"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}/versions/{version}/chain": {
      "get": {
        "operationId": "readPortfolioChain",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewerAudience",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "chain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "sourceId": {
                            "type": "string"
                          },
                          "sourceVersion": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "followsItemId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "itemId",
                          "kind",
                          "sourceId",
                          "sourceVersion"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "chain"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}/publication": {
      "post": {
        "operationId": "publishPortfolio",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9007199254740991
                  },
                  "audience": {
                    "type": "string",
                    "enum": [
                      "private",
                      "mentor",
                      "class",
                      "institution",
                      "public-link",
                      "public-index"
                    ]
                  },
                  "consent": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "audience": {
                        "type": "string",
                        "enum": [
                          "private",
                          "mentor",
                          "class",
                          "institution",
                          "public-link",
                          "public-index"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "audience"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "version",
                  "audience",
                  "consent"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "operationId": "revokePortfolioPublication",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}/downstream-copies": {
      "post": {
        "operationId": "recordDownstreamCopy",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "teaching-pack",
                      "cohort-showcase",
                      "search-index",
                      "shared-link",
                      "exported-file",
                      "external-mirror"
                    ]
                  },
                  "cleanupState": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "removed",
                      "access-blocked",
                      "expired",
                      "unrecoverable"
                    ]
                  }
                },
                "required": [
                  "id",
                  "kind",
                  "cleanupState"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/portfolios/{portfolioId}/downstream-copies/cleanup": {
      "post": {
        "operationId": "recordCopyCleanup",
        "parameters": [
          {
            "name": "portfolioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "15459e25-45b4-4eb2-a3ad-583a81215dc5"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "publicationIndex": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 199
                  },
                  "copyId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "cleanupState": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "removed",
                      "access-blocked",
                      "expired",
                      "unrecoverable"
                    ]
                  },
                  "notice": {
                    "type": "object",
                    "properties": {
                      "toParty": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      },
                      "message": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      }
                    },
                    "required": [
                      "toParty",
                      "message"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "publicationIndex",
                  "copyId",
                  "cleanupState"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "portfolio": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "versions": {
                          "minItems": 1,
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "derivedFromVersion": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "items": {
                                "minItems": 1,
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "ref": {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "question"
                                            },
                                            "questionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "questionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "study"
                                            },
                                            "observationId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "observationId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "comparison"
                                            },
                                            "comparisonSetId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "comparisonSetId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "attempt"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "feedback"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            },
                                            "feedbackIndex": {
                                              "type": "integer",
                                              "minimum": 0,
                                              "maximum": 99
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId",
                                            "feedbackIndex"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "decision"
                                            },
                                            "decisionId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "decisionId"
                                          ],
                                          "additionalProperties": false
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "kind": {
                                              "type": "string",
                                              "const": "revision"
                                            },
                                            "attemptId": {
                                              "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)$"
                                            }
                                          },
                                          "required": [
                                            "kind",
                                            "attemptId"
                                          ],
                                          "additionalProperties": false
                                        }
                                      ]
                                    },
                                    "sourceVersion": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "followsItemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "caption": {
                                      "type": "string",
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "ref",
                                    "sourceVersion"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "narrative": {
                                "type": "object",
                                "properties": {
                                  "authorKind": {
                                    "type": "string",
                                    "enum": [
                                      "learner",
                                      "mentor",
                                      "generated"
                                    ]
                                  },
                                  "authorId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 50000
                                  }
                                },
                                "required": [
                                  "authorKind",
                                  "authorId",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              "removed": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "itemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "reason": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "itemId",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "published": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "version",
                              "createdAt",
                              "items",
                              "narrative",
                              "removed",
                              "published"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "publications": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "audience": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor",
                                  "class",
                                  "institution",
                                  "public-link",
                                  "public-index"
                                ]
                              },
                              "publishedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "version": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "consents": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "audience": {
                                      "type": "string",
                                      "enum": [
                                        "private",
                                        "mentor",
                                        "class",
                                        "institution",
                                        "public-link",
                                        "public-index"
                                      ]
                                    },
                                    "grantedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "revokedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "audience",
                                    "grantedAt"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "downstreamCopies": {
                                "maxItems": 500,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "teaching-pack",
                                        "cohort-showcase",
                                        "search-index",
                                        "shared-link",
                                        "exported-file",
                                        "external-mirror"
                                      ]
                                    },
                                    "cleanupState": {
                                      "type": "string",
                                      "enum": [
                                        "pending",
                                        "removed",
                                        "access-blocked",
                                        "expired",
                                        "unrecoverable"
                                      ]
                                    },
                                    "cleanedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    },
                                    "noticeGiven": {
                                      "type": "object",
                                      "properties": {
                                        "toParty": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        },
                                        "givenAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        },
                                        "message": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 2000
                                        }
                                      },
                                      "required": [
                                        "toParty",
                                        "givenAt",
                                        "message"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "kind",
                                    "cleanupState"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "revokedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revocationReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "audience",
                              "publishedAt",
                              "version",
                              "consents",
                              "downstreamCopies"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "learnerUserId",
                        "title",
                        "versions",
                        "publications"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "portfolio"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparison-matrices": {
      "post": {
        "operationId": "authorComparisonMatrix",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "comparisonSetId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "rows": {
                    "type": "object",
                    "properties": {
                      "entries": {
                        "minItems": 1,
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "scene",
                                "frame",
                                "region",
                                "entity",
                                "example",
                                "original-concept",
                                "craft-dimension"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "key",
                            "kind"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "entries"
                    ],
                    "additionalProperties": false
                  },
                  "columns": {
                    "type": "object",
                    "properties": {
                      "entries": {
                        "minItems": 1,
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "work",
                                "scene",
                                "frame",
                                "region",
                                "entity",
                                "example",
                                "original-concept",
                                "craft-dimension"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          },
                          "required": [
                            "key",
                            "kind"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "entries"
                    ],
                    "additionalProperties": false
                  },
                  "cells": {
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "rowKey": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "colKey": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "observed",
                            "interpretation",
                            "unknown",
                            "disagreement",
                            "counterexample",
                            "unavailable",
                            "forbidden"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "rowKey",
                        "colKey",
                        "state"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "savedViews": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "rows": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "columns": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "columnConfiguration": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "colKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "visible": {
                                "type": "boolean"
                              },
                              "order": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 1000
                              },
                              "pinned": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "colKey",
                              "visible",
                              "order"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "sort": {
                          "type": "object",
                          "properties": {
                            "keys": {
                              "maxItems": 10,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "colKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "direction": {
                                    "type": "string",
                                    "enum": [
                                      "ascending",
                                      "descending"
                                    ]
                                  }
                                },
                                "required": [
                                  "colKey",
                                  "direction"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "unplaceable": {
                              "type": "string",
                              "enum": [
                                "first",
                                "last"
                              ]
                            }
                          },
                          "required": [
                            "keys"
                          ],
                          "additionalProperties": false
                        },
                        "filters": {
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "colKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "states": {
                                "maxItems": 7,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "observed",
                                    "interpretation",
                                    "unknown",
                                    "disagreement",
                                    "counterexample",
                                    "unavailable",
                                    "forbidden"
                                  ]
                                }
                              },
                              "values": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              }
                            },
                            "required": [
                              "colKey"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "pinnedRowKeys": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        }
                      },
                      "required": [
                        "name",
                        "rows",
                        "columns",
                        "columnConfiguration"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "comparisonSetId",
                  "title",
                  "rows",
                  "columns",
                  "cells"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "matrix": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "comparisonSetId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "rows": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "columns": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "cells": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "rowKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "colKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "state": {
                                "type": "string",
                                "enum": [
                                  "observed",
                                  "interpretation",
                                  "unknown",
                                  "disagreement",
                                  "counterexample",
                                  "unavailable",
                                  "forbidden"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "anchorIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              }
                            },
                            "required": [
                              "rowKey",
                              "colKey",
                              "state"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "savedViews": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "rows": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columns": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columnConfiguration": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "visible": {
                                      "type": "boolean"
                                    },
                                    "order": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 1000
                                    },
                                    "pinned": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "colKey",
                                    "visible",
                                    "order"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "sort": {
                                "type": "object",
                                "properties": {
                                  "keys": {
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "colKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "direction": {
                                          "type": "string",
                                          "enum": [
                                            "ascending",
                                            "descending"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "colKey",
                                        "direction"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "unplaceable": {
                                    "type": "string",
                                    "enum": [
                                      "first",
                                      "last"
                                    ]
                                  }
                                },
                                "required": [
                                  "keys"
                                ],
                                "additionalProperties": false
                              },
                              "filters": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "states": {
                                      "maxItems": 7,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "observed",
                                          "interpretation",
                                          "unknown",
                                          "disagreement",
                                          "counterexample",
                                          "unavailable",
                                          "forbidden"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "maxItems": 200,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 5000
                                      }
                                    }
                                  },
                                  "required": [
                                    "colKey"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "pinnedRowKeys": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "name",
                              "rows",
                              "columns",
                              "columnConfiguration"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "comparisonSetId",
                        "title",
                        "rows",
                        "columns",
                        "cells",
                        "savedViews"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "matrix"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparison-matrices/{matrixId}/cells": {
      "post": {
        "operationId": "recordMatrixCells",
        "parameters": [
          {
            "name": "matrixId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b10ccd42-6152-4846-a6cf-a87f2e718675"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "cells": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "rowKey": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "colKey": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "observed",
                            "interpretation",
                            "unknown",
                            "disagreement",
                            "counterexample",
                            "unavailable",
                            "forbidden"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "anchorIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "rowKey",
                        "colKey",
                        "state"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "cells",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "matrix": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "comparisonSetId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "rows": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "columns": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "cells": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "rowKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "colKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "state": {
                                "type": "string",
                                "enum": [
                                  "observed",
                                  "interpretation",
                                  "unknown",
                                  "disagreement",
                                  "counterexample",
                                  "unavailable",
                                  "forbidden"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "anchorIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              }
                            },
                            "required": [
                              "rowKey",
                              "colKey",
                              "state"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "savedViews": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "rows": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columns": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columnConfiguration": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "visible": {
                                      "type": "boolean"
                                    },
                                    "order": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 1000
                                    },
                                    "pinned": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "colKey",
                                    "visible",
                                    "order"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "sort": {
                                "type": "object",
                                "properties": {
                                  "keys": {
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "colKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "direction": {
                                          "type": "string",
                                          "enum": [
                                            "ascending",
                                            "descending"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "colKey",
                                        "direction"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "unplaceable": {
                                    "type": "string",
                                    "enum": [
                                      "first",
                                      "last"
                                    ]
                                  }
                                },
                                "required": [
                                  "keys"
                                ],
                                "additionalProperties": false
                              },
                              "filters": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "states": {
                                      "maxItems": 7,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "observed",
                                          "interpretation",
                                          "unknown",
                                          "disagreement",
                                          "counterexample",
                                          "unavailable",
                                          "forbidden"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "maxItems": 200,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 5000
                                      }
                                    }
                                  },
                                  "required": [
                                    "colKey"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "pinnedRowKeys": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "name",
                              "rows",
                              "columns",
                              "columnConfiguration"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "comparisonSetId",
                        "title",
                        "rows",
                        "columns",
                        "cells",
                        "savedViews"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "matrix"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparison-matrices/{matrixId}": {
      "get": {
        "operationId": "readComparisonMatrix",
        "parameters": [
          {
            "name": "matrixId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b10ccd42-6152-4846-a6cf-a87f2e718675"
          },
          {
            "name": "viewName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "facetColKey",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "matrix": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "comparisonSetId": {
                          "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)$"
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "rows": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "columns": {
                          "type": "object",
                          "properties": {
                            "entries": {
                              "minItems": 1,
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "kind": {
                                    "type": "string",
                                    "enum": [
                                      "work",
                                      "scene",
                                      "frame",
                                      "region",
                                      "entity",
                                      "example",
                                      "original-concept",
                                      "craft-dimension"
                                    ]
                                  },
                                  "label": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  }
                                },
                                "required": [
                                  "key",
                                  "kind"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "entries"
                          ],
                          "additionalProperties": false
                        },
                        "cells": {
                          "maxItems": 5000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "rowKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "colKey": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "state": {
                                "type": "string",
                                "enum": [
                                  "observed",
                                  "interpretation",
                                  "unknown",
                                  "disagreement",
                                  "counterexample",
                                  "unavailable",
                                  "forbidden"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "anchorIds": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              }
                            },
                            "required": [
                              "rowKey",
                              "colKey",
                              "state"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "savedViews": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "rows": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columns": {
                                "type": "object",
                                "properties": {
                                  "entries": {
                                    "minItems": 1,
                                    "maxItems": 200,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "key": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "kind": {
                                          "type": "string",
                                          "enum": [
                                            "work",
                                            "scene",
                                            "frame",
                                            "region",
                                            "entity",
                                            "example",
                                            "original-concept",
                                            "craft-dimension"
                                          ]
                                        },
                                        "label": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 300
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "kind"
                                      ],
                                      "additionalProperties": false
                                    }
                                  }
                                },
                                "required": [
                                  "entries"
                                ],
                                "additionalProperties": false
                              },
                              "columnConfiguration": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "visible": {
                                      "type": "boolean"
                                    },
                                    "order": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 1000
                                    },
                                    "pinned": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "colKey",
                                    "visible",
                                    "order"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "sort": {
                                "type": "object",
                                "properties": {
                                  "keys": {
                                    "maxItems": 10,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "colKey": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "direction": {
                                          "type": "string",
                                          "enum": [
                                            "ascending",
                                            "descending"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "colKey",
                                        "direction"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "unplaceable": {
                                    "type": "string",
                                    "enum": [
                                      "first",
                                      "last"
                                    ]
                                  }
                                },
                                "required": [
                                  "keys"
                                ],
                                "additionalProperties": false
                              },
                              "filters": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "colKey": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "states": {
                                      "maxItems": 7,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "observed",
                                          "interpretation",
                                          "unknown",
                                          "disagreement",
                                          "counterexample",
                                          "unavailable",
                                          "forbidden"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "maxItems": 200,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 5000
                                      }
                                    }
                                  },
                                  "required": [
                                    "colKey"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "pinnedRowKeys": {
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              }
                            },
                            "required": [
                              "name",
                              "rows",
                              "columns",
                              "columnConfiguration"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "comparisonSetId",
                        "title",
                        "rows",
                        "columns",
                        "cells",
                        "savedViews"
                      ],
                      "additionalProperties": false
                    },
                    "rowKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "keptByPin": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sorted": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "rowKeys": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "placed": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "unplaceable": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "rowKey": {
                                    "type": "string"
                                  },
                                  "state": {
                                    "type": "string",
                                    "enum": [
                                      "observed",
                                      "interpretation",
                                      "unknown",
                                      "disagreement",
                                      "counterexample",
                                      "unavailable",
                                      "forbidden"
                                    ]
                                  },
                                  "reason": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "rowKey",
                                  "state",
                                  "reason"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "ordersReadings": {
                              "type": "boolean"
                            },
                            "notes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "rowKeys",
                            "placed",
                            "unplaceable",
                            "ordersReadings",
                            "notes"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "facet": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "colKey": {
                              "type": "string"
                            },
                            "buckets": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "value": {
                                    "type": "string"
                                  },
                                  "rowKeys": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "value",
                                  "rowKeys"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "byNonValueState": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "withheld": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "notes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "colKey",
                            "buckets",
                            "byNonValueState",
                            "withheld",
                            "notes"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "legend": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "state": {
                            "type": "string",
                            "enum": [
                              "observed",
                              "interpretation",
                              "unknown",
                              "disagreement",
                              "counterexample",
                              "unavailable",
                              "forbidden"
                            ]
                          },
                          "carriesValue": {
                            "type": "boolean"
                          },
                          "requiresReason": {
                            "type": "boolean"
                          },
                          "meaning": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "state",
                          "carriesValue",
                          "requiresReason",
                          "meaning"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unaddressableCells": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rowKey": {
                            "type": "string"
                          },
                          "colKey": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "rowKey",
                          "colKey"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "matrix",
                    "rowKeys",
                    "keptByPin",
                    "sorted",
                    "facet",
                    "legend",
                    "unaddressableCells",
                    "notes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/comparisons/{comparisonId}/matrices": {
      "get": {
        "operationId": "listComparisonMatrices",
        "parameters": [
          {
            "name": "comparisonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bf435a4a-88f7-4b7a-abc0-c257d411d251"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "matrices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "comparisonSetId": {
                            "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)$"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "rows": {
                            "type": "object",
                            "properties": {
                              "entries": {
                                "minItems": 1,
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "work",
                                        "scene",
                                        "frame",
                                        "region",
                                        "entity",
                                        "example",
                                        "original-concept",
                                        "craft-dimension"
                                      ]
                                    },
                                    "label": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    }
                                  },
                                  "required": [
                                    "key",
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "entries"
                            ],
                            "additionalProperties": false
                          },
                          "columns": {
                            "type": "object",
                            "properties": {
                              "entries": {
                                "minItems": 1,
                                "maxItems": 200,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "kind": {
                                      "type": "string",
                                      "enum": [
                                        "work",
                                        "scene",
                                        "frame",
                                        "region",
                                        "entity",
                                        "example",
                                        "original-concept",
                                        "craft-dimension"
                                      ]
                                    },
                                    "label": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 300
                                    }
                                  },
                                  "required": [
                                    "key",
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "entries"
                            ],
                            "additionalProperties": false
                          },
                          "cells": {
                            "maxItems": 5000,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "rowKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "colKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "state": {
                                  "type": "string",
                                  "enum": [
                                    "observed",
                                    "interpretation",
                                    "unknown",
                                    "disagreement",
                                    "counterexample",
                                    "unavailable",
                                    "forbidden"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "anchorIds": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                }
                              },
                              "required": [
                                "rowKey",
                                "colKey",
                                "state"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "savedViews": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "rows": {
                                  "type": "object",
                                  "properties": {
                                    "entries": {
                                      "minItems": 1,
                                      "maxItems": 200,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "kind": {
                                            "type": "string",
                                            "enum": [
                                              "work",
                                              "scene",
                                              "frame",
                                              "region",
                                              "entity",
                                              "example",
                                              "original-concept",
                                              "craft-dimension"
                                            ]
                                          },
                                          "label": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 300
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "kind"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "entries"
                                  ],
                                  "additionalProperties": false
                                },
                                "columns": {
                                  "type": "object",
                                  "properties": {
                                    "entries": {
                                      "minItems": 1,
                                      "maxItems": 200,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "kind": {
                                            "type": "string",
                                            "enum": [
                                              "work",
                                              "scene",
                                              "frame",
                                              "region",
                                              "entity",
                                              "example",
                                              "original-concept",
                                              "craft-dimension"
                                            ]
                                          },
                                          "label": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 300
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "kind"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "entries"
                                  ],
                                  "additionalProperties": false
                                },
                                "columnConfiguration": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "colKey": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "visible": {
                                        "type": "boolean"
                                      },
                                      "order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 1000
                                      },
                                      "pinned": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "colKey",
                                      "visible",
                                      "order"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "sort": {
                                  "type": "object",
                                  "properties": {
                                    "keys": {
                                      "maxItems": 10,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "colKey": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "ascending",
                                              "descending"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "colKey",
                                          "direction"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "unplaceable": {
                                      "type": "string",
                                      "enum": [
                                        "first",
                                        "last"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "keys"
                                  ],
                                  "additionalProperties": false
                                },
                                "filters": {
                                  "maxItems": 20,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "colKey": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "states": {
                                        "maxItems": 7,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "observed",
                                            "interpretation",
                                            "unknown",
                                            "disagreement",
                                            "counterexample",
                                            "unavailable",
                                            "forbidden"
                                          ]
                                        }
                                      },
                                      "values": {
                                        "maxItems": 200,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 5000
                                        }
                                      }
                                    },
                                    "required": [
                                      "colKey"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "pinnedRowKeys": {
                                  "maxItems": 200,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "name",
                                "rows",
                                "columns",
                                "columnConfiguration"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "comparisonSetId",
                          "title",
                          "rows",
                          "columns",
                          "cells",
                          "savedViews"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "matrices"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/change-impact": {
      "post": {
        "operationId": "reviewChangeImpact",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "changed": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "source",
                            "grant",
                            "anchor",
                            "claim",
                            "principle",
                            "concept",
                            "decision",
                            "output",
                            "outcome",
                            "export"
                          ]
                        },
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        }
                      },
                      "required": [
                        "kind",
                        "id"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "changed"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "changed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "source",
                              "grant",
                              "anchor",
                              "claim",
                              "principle",
                              "concept",
                              "decision",
                              "output",
                              "outcome",
                              "export"
                            ]
                          },
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "kind",
                          "id"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "impacted": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "ref": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "distance": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "ref",
                          "distance"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "byKind": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "reviewTargets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "ref": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "distance": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "ref",
                          "distance"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "unresolved": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "from": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "to": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "field": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "to",
                          "field"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "boundaryNote": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "changed",
                    "impacted",
                    "byKind",
                    "reviewTargets",
                    "unresolved",
                    "boundaryNote"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}/provenance": {
      "get": {
        "operationId": "traceDecisionProvenance",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decisionId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "proposed",
                        "committed",
                        "revisited",
                        "reversed"
                      ]
                    },
                    "routes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "abstracted",
                          "direct",
                          "declared-none"
                        ]
                      }
                    },
                    "principles": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "principleId": {
                            "type": "string"
                          },
                          "abstractedWording": {
                            "type": "string"
                          },
                          "transformationRationale": {
                            "type": "string"
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "limitations": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "supportingAnchorIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "supportingClaimIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "contradictingAnchorIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "principleId",
                          "abstractedWording",
                          "transformationRationale",
                          "reviewState",
                          "limitations",
                          "supportingAnchorIds",
                          "supportingClaimIds",
                          "contradictingAnchorIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "directAnchorIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sourceWorkIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "brokenLinks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "from": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "to": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "source",
                                  "grant",
                                  "anchor",
                                  "claim",
                                  "principle",
                                  "concept",
                                  "decision",
                                  "output",
                                  "outcome",
                                  "export"
                                ]
                              },
                              "id": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "id"
                            ],
                            "additionalProperties": false
                          },
                          "field": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "to",
                          "field"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "decisionId",
                    "status",
                    "routes",
                    "principles",
                    "directAnchorIds",
                    "sourceWorkIds",
                    "brokenLinks",
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-principles": {
      "post": {
        "operationId": "deriveCreativePrinciple",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "abstractedWording": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "supportingClaimIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "supportingAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "contradictingAnchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "transformationRationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "limitations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "projectApplicability": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "projectId",
                  "abstractedWording",
                  "supportingClaimIds",
                  "supportingAnchorIds",
                  "transformationRationale",
                  "projectApplicability"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "principle": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "abstractedWording": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "supportingClaimIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "supportingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "contradictingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "transformationRationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "trackRecord": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "appliedIn": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "outcome": {
                                "type": "string",
                                "enum": [
                                  "worked",
                                  "mixed",
                                  "did-not-work",
                                  "unknown"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "appliedIn",
                              "outcome",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "projectApplicability": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "abstractedWording",
                        "supportingClaimIds",
                        "supportingAnchorIds",
                        "contradictingAnchorIds",
                        "transformationRationale",
                        "limitations",
                        "reviewState",
                        "trackRecord",
                        "projectApplicability"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "principle"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-principles/{principleId}/review": {
      "post": {
        "operationId": "reviewCreativePrinciple",
        "parameters": [
          {
            "name": "principleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "971710a1-58cc-4db2-aa2a-4eee52ea0275"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reviewState": {
                    "type": "string",
                    "enum": [
                      "suggested",
                      "accepted",
                      "corrected",
                      "contested",
                      "rejected",
                      "superseded"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "reviewState",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "principle": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "abstractedWording": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "supportingClaimIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "supportingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "contradictingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "transformationRationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "trackRecord": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "appliedIn": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "outcome": {
                                "type": "string",
                                "enum": [
                                  "worked",
                                  "mixed",
                                  "did-not-work",
                                  "unknown"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "appliedIn",
                              "outcome",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "projectApplicability": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "abstractedWording",
                        "supportingClaimIds",
                        "supportingAnchorIds",
                        "contradictingAnchorIds",
                        "transformationRationale",
                        "limitations",
                        "reviewState",
                        "trackRecord",
                        "projectApplicability"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "principle"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-principles/{principleId}": {
      "get": {
        "operationId": "readCreativePrinciple",
        "parameters": [
          {
            "name": "principleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "971710a1-58cc-4db2-aa2a-4eee52ea0275"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "principle": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "abstractedWording": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "supportingClaimIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "supportingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "contradictingAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "transformationRationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "trackRecord": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "appliedIn": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 300
                              },
                              "outcome": {
                                "type": "string",
                                "enum": [
                                  "worked",
                                  "mixed",
                                  "did-not-work",
                                  "unknown"
                                ]
                              },
                              "note": {
                                "type": "string",
                                "maxLength": 2000
                              },
                              "recordedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "appliedIn",
                              "outcome",
                              "recordedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "projectApplicability": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "abstractedWording",
                        "supportingClaimIds",
                        "supportingAnchorIds",
                        "contradictingAnchorIds",
                        "transformationRationale",
                        "limitations",
                        "reviewState",
                        "trackRecord",
                        "projectApplicability"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "principle"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/creative-principles": {
      "get": {
        "operationId": "listCreativePrinciples",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "reviewState",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "principles": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "abstractedWording": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "supportingClaimIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "supportingAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "contradictingAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "transformationRationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 5000
                          },
                          "limitations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "reviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "trackRecord": {
                            "maxItems": 500,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "appliedIn": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 300
                                },
                                "outcome": {
                                  "type": "string",
                                  "enum": [
                                    "worked",
                                    "mixed",
                                    "did-not-work",
                                    "unknown"
                                  ]
                                },
                                "note": {
                                  "type": "string",
                                  "maxLength": 2000
                                },
                                "recordedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "appliedIn",
                                "outcome",
                                "recordedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "projectApplicability": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "abstractedWording",
                          "supportingClaimIds",
                          "supportingAnchorIds",
                          "contradictingAnchorIds",
                          "transformationRationale",
                          "limitations",
                          "reviewState",
                          "trackRecord",
                          "projectApplicability"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "principles"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/principles/{principleId}/track-record": {
      "get": {
        "operationId": "readPrincipleTrackRecord",
        "parameters": [
          {
            "name": "principleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "971710a1-58cc-4db2-aa2a-4eee52ea0275"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "record": {
                      "type": "object",
                      "properties": {
                        "principleId": {
                          "type": "string"
                        },
                        "entries": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "decisionId": {
                                "type": "string"
                              },
                              "outcomeId": {
                                "type": "string"
                              },
                              "use": {
                                "type": "string"
                              },
                              "projectContext": {
                                "type": "string"
                              },
                              "intendedEffect": {
                                "type": "string"
                              },
                              "evidenceAnchorIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "result": {
                                "type": "string",
                                "enum": [
                                  "supported",
                                  "contradicted",
                                  "unresolved"
                                ]
                              },
                              "limitations": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "decisionId",
                              "outcomeId",
                              "use",
                              "projectContext",
                              "intendedEffect",
                              "evidenceAnchorIds",
                              "result",
                              "limitations"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "supportedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "contradictedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "unresolvedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "decisionsAwaitingOutcome": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "principleId",
                        "entries",
                        "supportedCount",
                        "contradictedCount",
                        "unresolvedCount",
                        "decisionsAwaitingOutcome"
                      ],
                      "additionalProperties": false
                    },
                    "summary": {
                      "type": "object",
                      "properties": {
                        "principleId": {
                          "type": "string"
                        },
                        "narrative": {
                          "type": "string"
                        },
                        "totalUses": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "supportedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "contradictedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "unresolvedCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "awaitingOutcomeCount": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "examples": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "decisionId": {
                                "type": "string"
                              },
                              "projectContext": {
                                "type": "string"
                              },
                              "intendedEffect": {
                                "type": "string"
                              },
                              "result": {
                                "type": "string",
                                "enum": [
                                  "supported",
                                  "contradicted",
                                  "unresolved"
                                ]
                              },
                              "limitations": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "decisionId",
                              "projectContext",
                              "intendedEffect",
                              "result",
                              "limitations"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "principleId",
                        "narrative",
                        "totalUses",
                        "supportedCount",
                        "contradictedCount",
                        "unresolvedCount",
                        "awaitingOutcomeCount",
                        "examples"
                      ],
                      "additionalProperties": false
                    },
                    "currency": {
                      "type": "object",
                      "properties": {
                        "principleId": {
                          "type": "string"
                        },
                        "lastTestedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "daysSinceLastOutcome": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "recently-tested",
                            "untested-lately",
                            "never-tested"
                          ]
                        },
                        "decisionsAwaitingOutcome": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "principleId",
                        "lastTestedAt",
                        "daysSinceLastOutcome",
                        "status",
                        "decisionsAwaitingOutcome",
                        "message"
                      ],
                      "additionalProperties": false
                    },
                    "projectsRead": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "scopedToMembership": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "record",
                    "summary",
                    "currency",
                    "projectsRead",
                    "scopedToMembership"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/creative-decisions/{decisionId}": {
      "get": {
        "operationId": "getCreativeDecision",
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "516c9725-66dc-4d32-ab7d-9b00b04e2031"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "ownerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "proposed",
                            "committed",
                            "revisited",
                            "reversed"
                          ]
                        },
                        "origin": {
                          "type": "string",
                          "enum": [
                            "derived",
                            "unsupported-original-exploration"
                          ]
                        },
                        "decision": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "transformation": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "intendedEffect": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 10000
                        },
                        "alternatives": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "constraints": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rejectedDirections": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "direction": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "whyRejected": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "direction",
                              "whyRejected"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "principlePathIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourcePathAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "affectedConceptIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "productionBacklinkIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "approvals": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "approvedBy": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "approvedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "approvedBy",
                              "role",
                              "approvedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "openReviewTaskIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "ownerUserId",
                        "status",
                        "decision",
                        "rationale",
                        "alternatives",
                        "constraints",
                        "rejectedDirections",
                        "principlePathIds",
                        "sourcePathAnchorIds",
                        "affectedConceptIds",
                        "productionBacklinkIds",
                        "approvals",
                        "openReviewTaskIds"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "decision"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/creative-decisions": {
      "get": {
        "operationId": "listCreativeDecisions",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "decisions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "ownerUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "proposed",
                              "committed",
                              "revisited",
                              "reversed"
                            ]
                          },
                          "origin": {
                            "type": "string",
                            "enum": [
                              "derived",
                              "unsupported-original-exploration"
                            ]
                          },
                          "decision": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "transformation": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "intendedEffect": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 10000
                          },
                          "alternatives": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "constraints": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "rejectedDirections": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "direction": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "whyRejected": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                }
                              },
                              "required": [
                                "direction",
                                "whyRejected"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "principlePathIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "sourcePathAnchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "affectedConceptIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "productionBacklinkIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "approvals": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "approvedBy": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "role": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "approvedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "approvedBy",
                                "role",
                                "approvedAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "openReviewTaskIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "ownerUserId",
                          "status",
                          "decision",
                          "rationale",
                          "alternatives",
                          "constraints",
                          "rejectedDirections",
                          "principlePathIds",
                          "sourcePathAnchorIds",
                          "affectedConceptIds",
                          "productionBacklinkIds",
                          "approvals",
                          "openReviewTaskIds"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "decisions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-exercises": {
      "post": {
        "operationId": "createPracticeExercise",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "objective": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "family": {
                    "type": "string",
                    "enum": [
                      "identify-and-justify",
                      "blind-comparison",
                      "sorting",
                      "boundary-marking",
                      "reconstruction",
                      "original-creation",
                      "diagnosis-revision",
                      "teach-back",
                      "reproduction-study"
                    ]
                  },
                  "conceptRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "constraints": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "rubric": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "criterion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "meetsDescription": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "dimension": {
                          "type": "string",
                          "enum": [
                            "factual-knowledge",
                            "perceptual-discrimination",
                            "analysis-quality",
                            "production-application",
                            "reflection",
                            "repeated-performance"
                          ]
                        }
                      },
                      "required": [
                        "criterion",
                        "meetsDescription"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "expectedEvidence": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "exampleAnchorIds": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "accommodations": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "authoring": {
                    "type": "object",
                    "properties": {
                      "scope": {
                        "type": "object",
                        "properties": {
                          "unit": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "count": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000
                          },
                          "excluded": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            }
                          }
                        },
                        "required": [
                          "unit",
                          "count",
                          "excluded"
                        ],
                        "additionalProperties": false
                      },
                      "conceptRefs": {
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        }
                      },
                      "counterexampleAnchorIds": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "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)$"
                        }
                      },
                      "evidenceDimensions": {
                        "minItems": 1,
                        "maxItems": 6,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "factual-knowledge",
                            "perceptual-discrimination",
                            "analysis-quality",
                            "production-application",
                            "reflection",
                            "repeated-performance"
                          ]
                        }
                      },
                      "demands": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        }
                      },
                      "effort": {
                        "type": "object",
                        "properties": {
                          "lowMinutes": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100000
                          },
                          "highMinutes": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100000
                          },
                          "basis": {
                            "type": "string",
                            "enum": [
                              "author-judgment",
                              "authored-pilot",
                              "prior-cohort-median"
                            ]
                          },
                          "sampleSize": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 1000000
                          }
                        },
                        "required": [
                          "lowMinutes",
                          "highMinutes",
                          "basis"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "scope",
                      "conceptRefs",
                      "counterexampleAnchorIds",
                      "evidenceDimensions",
                      "demands",
                      "effort"
                    ],
                    "additionalProperties": false
                  },
                  "dueState": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "self-paced"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "due"
                          },
                          "dueAt": {
                            "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                          }
                        },
                        "required": [
                          "kind",
                          "dueAt"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "assignmentContext": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "self-study"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "assigned"
                          },
                          "assignedByUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "cohortRef": {
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "kind",
                          "assignedByUserId"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "objective",
                  "conceptRef",
                  "constraints",
                  "rubric",
                  "expectedEvidence",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "exercise": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "objective": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "family": {
                          "type": "string",
                          "enum": [
                            "identify-and-justify",
                            "blind-comparison",
                            "sorting",
                            "boundary-marking",
                            "reconstruction",
                            "original-creation",
                            "diagnosis-revision",
                            "teach-back",
                            "reproduction-study"
                          ]
                        },
                        "conceptRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "constraints": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rubric": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "criterion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "meetsDescription": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "dimension": {
                                "type": "string",
                                "enum": [
                                  "factual-knowledge",
                                  "perceptual-discrimination",
                                  "analysis-quality",
                                  "production-application",
                                  "reflection",
                                  "repeated-performance"
                                ]
                              }
                            },
                            "required": [
                              "criterion",
                              "meetsDescription"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "exampleAnchorIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "rightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "expectedEvidence": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "accommodations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "authoring": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "object",
                              "properties": {
                                "unit": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "count": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1000
                                },
                                "excluded": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                }
                              },
                              "required": [
                                "unit",
                                "count",
                                "excluded"
                              ],
                              "additionalProperties": false
                            },
                            "conceptRefs": {
                              "minItems": 1,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "counterexampleAnchorIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "evidenceDimensions": {
                              "minItems": 1,
                              "maxItems": 6,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "factual-knowledge",
                                  "perceptual-discrimination",
                                  "analysis-quality",
                                  "production-application",
                                  "reflection",
                                  "repeated-performance"
                                ]
                              }
                            },
                            "demands": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "effort": {
                              "type": "object",
                              "properties": {
                                "lowMinutes": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 100000
                                },
                                "highMinutes": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 100000
                                },
                                "basis": {
                                  "type": "string",
                                  "enum": [
                                    "author-judgment",
                                    "authored-pilot",
                                    "prior-cohort-median"
                                  ]
                                },
                                "sampleSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                }
                              },
                              "required": [
                                "lowMinutes",
                                "highMinutes",
                                "basis"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "scope",
                            "conceptRefs",
                            "counterexampleAnchorIds",
                            "evidenceDimensions",
                            "demands",
                            "effort"
                          ],
                          "additionalProperties": false
                        },
                        "dueState": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "assignmentContext": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-study"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "assigned"
                                },
                                "assignedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "cohortRef": {
                                  "type": "string",
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "assignedByUserId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "objective",
                        "conceptRef",
                        "constraints",
                        "rubric",
                        "exampleAnchorIds",
                        "rightsGrantIds",
                        "expectedEvidence",
                        "accommodations",
                        "dueState",
                        "assignmentContext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "exercise"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-exercises/{exerciseId}": {
      "get": {
        "operationId": "getPracticeExercise",
        "parameters": [
          {
            "name": "exerciseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "214bd88d-a9d6-46b2-a89f-5850aa9b6f45"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "exercise": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "objective": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "family": {
                          "type": "string",
                          "enum": [
                            "identify-and-justify",
                            "blind-comparison",
                            "sorting",
                            "boundary-marking",
                            "reconstruction",
                            "original-creation",
                            "diagnosis-revision",
                            "teach-back",
                            "reproduction-study"
                          ]
                        },
                        "conceptRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "constraints": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rubric": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "criterion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              "meetsDescription": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              },
                              "dimension": {
                                "type": "string",
                                "enum": [
                                  "factual-knowledge",
                                  "perceptual-discrimination",
                                  "analysis-quality",
                                  "production-application",
                                  "reflection",
                                  "repeated-performance"
                                ]
                              }
                            },
                            "required": [
                              "criterion",
                              "meetsDescription"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "exampleAnchorIds": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "rightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "expectedEvidence": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "accommodations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "authoring": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "object",
                              "properties": {
                                "unit": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                },
                                "count": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1000
                                },
                                "excluded": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                }
                              },
                              "required": [
                                "unit",
                                "count",
                                "excluded"
                              ],
                              "additionalProperties": false
                            },
                            "conceptRefs": {
                              "minItems": 1,
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "counterexampleAnchorIds": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "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)$"
                              }
                            },
                            "evidenceDimensions": {
                              "minItems": 1,
                              "maxItems": 6,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "factual-knowledge",
                                  "perceptual-discrimination",
                                  "analysis-quality",
                                  "production-application",
                                  "reflection",
                                  "repeated-performance"
                                ]
                              }
                            },
                            "demands": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              }
                            },
                            "effort": {
                              "type": "object",
                              "properties": {
                                "lowMinutes": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 100000
                                },
                                "highMinutes": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 100000
                                },
                                "basis": {
                                  "type": "string",
                                  "enum": [
                                    "author-judgment",
                                    "authored-pilot",
                                    "prior-cohort-median"
                                  ]
                                },
                                "sampleSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000
                                }
                              },
                              "required": [
                                "lowMinutes",
                                "highMinutes",
                                "basis"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "scope",
                            "conceptRefs",
                            "counterexampleAnchorIds",
                            "evidenceDimensions",
                            "demands",
                            "effort"
                          ],
                          "additionalProperties": false
                        },
                        "dueState": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-paced"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "due"
                                },
                                "dueAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "kind",
                                "dueAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "assignmentContext": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "self-study"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "assigned"
                                },
                                "assignedByUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "cohortRef": {
                                  "type": "string",
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "assignedByUserId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "objective",
                        "conceptRef",
                        "constraints",
                        "rubric",
                        "exampleAnchorIds",
                        "rightsGrantIds",
                        "expectedEvidence",
                        "accommodations",
                        "dueState",
                        "assignmentContext"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "exercise"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/practice-exercises": {
      "get": {
        "operationId": "listPracticeExercises",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "exercises": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "objective": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "family": {
                            "type": "string",
                            "enum": [
                              "identify-and-justify",
                              "blind-comparison",
                              "sorting",
                              "boundary-marking",
                              "reconstruction",
                              "original-creation",
                              "diagnosis-revision",
                              "teach-back",
                              "reproduction-study"
                            ]
                          },
                          "conceptRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "constraints": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "rubric": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "criterion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 500
                                },
                                "meetsDescription": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "dimension": {
                                  "type": "string",
                                  "enum": [
                                    "factual-knowledge",
                                    "perceptual-discrimination",
                                    "analysis-quality",
                                    "production-application",
                                    "reflection",
                                    "repeated-performance"
                                  ]
                                }
                              },
                              "required": [
                                "criterion",
                                "meetsDescription"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "exampleAnchorIds": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "rightsGrantIds": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "expectedEvidence": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "accommodations": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "authoring": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "object",
                                "properties": {
                                  "unit": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "count": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 1000
                                  },
                                  "excluded": {
                                    "minItems": 1,
                                    "maxItems": 50,
                                    "type": "array",
                                    "items": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 500
                                    }
                                  }
                                },
                                "required": [
                                  "unit",
                                  "count",
                                  "excluded"
                                ],
                                "additionalProperties": false
                              },
                              "conceptRefs": {
                                "minItems": 1,
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "counterexampleAnchorIds": {
                                "maxItems": 100,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "evidenceDimensions": {
                                "minItems": 1,
                                "maxItems": 6,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "factual-knowledge",
                                    "perceptual-discrimination",
                                    "analysis-quality",
                                    "production-application",
                                    "reflection",
                                    "repeated-performance"
                                  ]
                                }
                              },
                              "demands": {
                                "maxItems": 20,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "effort": {
                                "type": "object",
                                "properties": {
                                  "lowMinutes": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 100000
                                  },
                                  "highMinutes": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 100000
                                  },
                                  "basis": {
                                    "type": "string",
                                    "enum": [
                                      "author-judgment",
                                      "authored-pilot",
                                      "prior-cohort-median"
                                    ]
                                  },
                                  "sampleSize": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 1000000
                                  }
                                },
                                "required": [
                                  "lowMinutes",
                                  "highMinutes",
                                  "basis"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "scope",
                              "conceptRefs",
                              "counterexampleAnchorIds",
                              "evidenceDimensions",
                              "demands",
                              "effort"
                            ],
                            "additionalProperties": false
                          },
                          "dueState": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "self-paced"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "due"
                                  },
                                  "dueAt": {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  }
                                },
                                "required": [
                                  "kind",
                                  "dueAt"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          },
                          "assignmentContext": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "self-study"
                                  }
                                },
                                "required": [
                                  "kind"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "assigned"
                                  },
                                  "assignedByUserId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "cohortRef": {
                                    "type": "string",
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "kind",
                                  "assignedByUserId"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "objective",
                          "conceptRef",
                          "constraints",
                          "rubric",
                          "exampleAnchorIds",
                          "rightsGrantIds",
                          "expectedEvidence",
                          "accommodations",
                          "dueState",
                          "assignmentContext"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "exercises"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-exercises/{exerciseId}/attempts": {
      "post": {
        "operationId": "submitPracticeAttempt",
        "parameters": [
          {
            "name": "exerciseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "214bd88d-a9d6-46b2-a89f-5850aa9b6f45"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "artifactObjectKeys": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1024
                    }
                  },
                  "anchorIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "reflection": {
                    "type": "string",
                    "maxLength": 10000
                  },
                  "sharingScope": {
                    "type": "string",
                    "enum": [
                      "private",
                      "mentor-only",
                      "cohort",
                      "project"
                    ]
                  }
                },
                "required": [
                  "artifactObjectKeys"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "attempt": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "exerciseId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "artifactObjectKeys": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "anchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "attemptRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "feedback": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "source": {
                                "type": "string",
                                "enum": [
                                  "automated",
                                  "teacher",
                                  "mentor",
                                  "peer",
                                  "self",
                                  "imported"
                                ]
                              },
                              "feedback": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "evidenceAnchorIds": {
                                "minItems": 1,
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "givenAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "learnerChallenge": {
                                "type": "string",
                                "maxLength": 5000
                              }
                            },
                            "required": [
                              "fromUserId",
                              "feedback",
                              "evidenceAnchorIds",
                              "givenAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reflection": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "sharingConsent": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "private",
                                "mentor-only",
                                "cohort",
                                "project"
                              ]
                            },
                            "consentedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revokedAt": {
                              "anyOf": [
                                {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "scope",
                            "consentedAt",
                            "revokedAt"
                          ],
                          "additionalProperties": false
                        },
                        "learnerDeletionRequestedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "exerciseId",
                        "learnerUserId",
                        "artifactObjectKeys",
                        "anchorIds",
                        "attemptRevision",
                        "feedback",
                        "sharingConsent",
                        "learnerDeletionRequestedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "attempt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "get": {
        "operationId": "listPracticeAttempts",
        "parameters": [
          {
            "name": "exerciseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "214bd88d-a9d6-46b2-a89f-5850aa9b6f45"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "attempts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "exerciseId": {
                            "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)$"
                          },
                          "learnerUserId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          },
                          "artifactObjectKeys": {
                            "minItems": 1,
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1024
                            }
                          },
                          "anchorIds": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "attemptRevision": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 9007199254740991
                          },
                          "feedback": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "fromUserId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "source": {
                                  "type": "string",
                                  "enum": [
                                    "automated",
                                    "teacher",
                                    "mentor",
                                    "peer",
                                    "self",
                                    "imported"
                                  ]
                                },
                                "feedback": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 10000
                                },
                                "evidenceAnchorIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "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)$"
                                  }
                                },
                                "givenAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "learnerChallenge": {
                                  "type": "string",
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "fromUserId",
                                "feedback",
                                "evidenceAnchorIds",
                                "givenAt"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "reflection": {
                            "type": "string",
                            "maxLength": 10000
                          },
                          "sharingConsent": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "private",
                                  "mentor-only",
                                  "cohort",
                                  "project"
                                ]
                              },
                              "consentedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revokedAt": {
                                "anyOf": [
                                  {
                                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "scope",
                              "consentedAt",
                              "revokedAt"
                            ],
                            "additionalProperties": false
                          },
                          "learnerDeletionRequestedAt": {
                            "anyOf": [
                              {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "exerciseId",
                          "learnerUserId",
                          "artifactObjectKeys",
                          "anchorIds",
                          "attemptRevision",
                          "feedback",
                          "sharingConsent",
                          "learnerDeletionRequestedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "attempts"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-attempts/{attemptId}/feedback": {
      "post": {
        "operationId": "givePracticeFeedback",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "enum": [
                      "automated",
                      "teacher",
                      "mentor",
                      "peer",
                      "self",
                      "imported"
                    ]
                  },
                  "feedback": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "evidenceAnchorIds": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  }
                },
                "required": [
                  "source",
                  "feedback",
                  "evidenceAnchorIds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "attempt": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "exerciseId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "artifactObjectKeys": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "anchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "attemptRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "feedback": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "source": {
                                "type": "string",
                                "enum": [
                                  "automated",
                                  "teacher",
                                  "mentor",
                                  "peer",
                                  "self",
                                  "imported"
                                ]
                              },
                              "feedback": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "evidenceAnchorIds": {
                                "minItems": 1,
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "givenAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "learnerChallenge": {
                                "type": "string",
                                "maxLength": 5000
                              }
                            },
                            "required": [
                              "fromUserId",
                              "feedback",
                              "evidenceAnchorIds",
                              "givenAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reflection": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "sharingConsent": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "private",
                                "mentor-only",
                                "cohort",
                                "project"
                              ]
                            },
                            "consentedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revokedAt": {
                              "anyOf": [
                                {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "scope",
                            "consentedAt",
                            "revokedAt"
                          ],
                          "additionalProperties": false
                        },
                        "learnerDeletionRequestedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "exerciseId",
                        "learnerUserId",
                        "artifactObjectKeys",
                        "anchorIds",
                        "attemptRevision",
                        "feedback",
                        "sharingConsent",
                        "learnerDeletionRequestedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "attempt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-attempts/{attemptId}/challenge": {
      "post": {
        "operationId": "challengePracticeFeedback",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "feedbackIndex": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "challenge": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "feedbackIndex",
                  "challenge"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "attempt": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "exerciseId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "artifactObjectKeys": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "anchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "attemptRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "feedback": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "source": {
                                "type": "string",
                                "enum": [
                                  "automated",
                                  "teacher",
                                  "mentor",
                                  "peer",
                                  "self",
                                  "imported"
                                ]
                              },
                              "feedback": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "evidenceAnchorIds": {
                                "minItems": 1,
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "givenAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "learnerChallenge": {
                                "type": "string",
                                "maxLength": 5000
                              }
                            },
                            "required": [
                              "fromUserId",
                              "feedback",
                              "evidenceAnchorIds",
                              "givenAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reflection": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "sharingConsent": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "private",
                                "mentor-only",
                                "cohort",
                                "project"
                              ]
                            },
                            "consentedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revokedAt": {
                              "anyOf": [
                                {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "scope",
                            "consentedAt",
                            "revokedAt"
                          ],
                          "additionalProperties": false
                        },
                        "learnerDeletionRequestedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "exerciseId",
                        "learnerUserId",
                        "artifactObjectKeys",
                        "anchorIds",
                        "attemptRevision",
                        "feedback",
                        "sharingConsent",
                        "learnerDeletionRequestedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "attempt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-attempts/{attemptId}/reflection": {
      "post": {
        "operationId": "addPracticeReflection",
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3582f420-6a93-42e4-a3a5-6f69e198ea55"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "reflection": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  }
                },
                "required": [
                  "reflection"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "attempt": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "exerciseId": {
                          "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)$"
                        },
                        "learnerUserId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 160
                        },
                        "artifactObjectKeys": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          }
                        },
                        "anchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "attemptRevision": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "feedback": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fromUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "source": {
                                "type": "string",
                                "enum": [
                                  "automated",
                                  "teacher",
                                  "mentor",
                                  "peer",
                                  "self",
                                  "imported"
                                ]
                              },
                              "feedback": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 10000
                              },
                              "evidenceAnchorIds": {
                                "minItems": 1,
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "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)$"
                                }
                              },
                              "givenAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "learnerChallenge": {
                                "type": "string",
                                "maxLength": 5000
                              }
                            },
                            "required": [
                              "fromUserId",
                              "feedback",
                              "evidenceAnchorIds",
                              "givenAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "reflection": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "sharingConsent": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "private",
                                "mentor-only",
                                "cohort",
                                "project"
                              ]
                            },
                            "consentedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revokedAt": {
                              "anyOf": [
                                {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "scope",
                            "consentedAt",
                            "revokedAt"
                          ],
                          "additionalProperties": false
                        },
                        "learnerDeletionRequestedAt": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "exerciseId",
                        "learnerUserId",
                        "artifactObjectKeys",
                        "anchorIds",
                        "attemptRevision",
                        "feedback",
                        "sharingConsent",
                        "learnerDeletionRequestedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "attempt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/practice-exercises/{exerciseId}/mastery": {
      "post": {
        "operationId": "computePracticeMastery",
        "parameters": [
          {
            "name": "exerciseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "214bd88d-a9d6-46b2-a89f-5850aa9b6f45"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "learnerUserId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "outcomes": {
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "attemptId": {
                          "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)$"
                        },
                        "met": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "attemptId",
                        "met"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "learnerUserId",
                  "outcomes"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "conceptRef": {
                      "type": "string"
                    },
                    "learnerUserId": {
                      "type": "string"
                    },
                    "posterior": {
                      "type": "number"
                    },
                    "level": {
                      "type": "string"
                    },
                    "observationCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "unjudgedAttemptIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "attemptCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "conceptRef",
                    "learnerUserId",
                    "posterior",
                    "level",
                    "observationCount",
                    "unjudgedAttemptIds",
                    "attemptCount"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/project-transfers": {
      "post": {
        "operationId": "createProjectTransfer",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "destination": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "yemaya-production",
                          "instrumented-game"
                        ]
                      },
                      "projectRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "projectRef",
                      "label"
                    ],
                    "additionalProperties": false
                  },
                  "payloads": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "principle"
                            },
                            "principleId": {
                              "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)$"
                            },
                            "wording": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 5000
                            }
                          },
                          "required": [
                            "kind",
                            "principleId",
                            "wording"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "constraint"
                            },
                            "text": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "kind",
                            "text"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "question"
                            },
                            "text": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "kind",
                            "text"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "const": "task"
                            },
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 5000
                            }
                          },
                          "required": [
                            "kind",
                            "description"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "producedArtifactRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "decisionIds": {
                    "minItems": 1,
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "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)$"
                    }
                  },
                  "backlinkId": {
                    "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)$"
                  },
                  "originalityWarnings": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "blockedContent": {
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "blockedClass": {
                          "type": "string",
                          "enum": [
                            "source-media",
                            "extracted-asset",
                            "near-copy-prompt",
                            "high-resolution-crop",
                            "proprietary-game-asset"
                          ]
                        },
                        "reason": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "description",
                        "blockedClass",
                        "reason"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "destination",
                  "payloads",
                  "producedArtifactRef",
                  "decisionIds",
                  "backlinkId",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "transfer": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "destination": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "yemaya-production",
                                "instrumented-game"
                              ]
                            },
                            "projectRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "kind",
                            "projectRef",
                            "label"
                          ],
                          "additionalProperties": false
                        },
                        "payloads": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "principle"
                                  },
                                  "principleId": {
                                    "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)$"
                                  },
                                  "wording": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "principleId",
                                  "wording"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "constraint"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "question"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "task"
                                  },
                                  "description": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "description"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "producedArtifactRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "decisionIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "rightsReviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "originalityWarnings": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blockedContent": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "description": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "blockedClass": {
                                "type": "string",
                                "enum": [
                                  "source-media",
                                  "extracted-asset",
                                  "near-copy-prompt",
                                  "high-resolution-crop",
                                  "proprietary-game-asset"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "description",
                              "blockedClass",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "backlinkId": {
                          "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)$"
                        },
                        "downstreamImpactRefs": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "destination",
                        "payloads",
                        "producedArtifactRef",
                        "decisionIds",
                        "rightsReviewState",
                        "originalityWarnings",
                        "blockedContent",
                        "backlinkId",
                        "downstreamImpactRefs"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "transfer"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/project-transfers/{transferId}/impact": {
      "post": {
        "operationId": "recordProjectTransferImpact",
        "parameters": [
          {
            "name": "transferId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b21dc668-44d7-477a-a7e5-9815e4d98b11"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "downstreamRef": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  }
                },
                "required": [
                  "downstreamRef"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "transfer": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "destination": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "yemaya-production",
                                "instrumented-game"
                              ]
                            },
                            "projectRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "kind",
                            "projectRef",
                            "label"
                          ],
                          "additionalProperties": false
                        },
                        "payloads": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "principle"
                                  },
                                  "principleId": {
                                    "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)$"
                                  },
                                  "wording": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "principleId",
                                  "wording"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "constraint"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "question"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "task"
                                  },
                                  "description": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "description"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "producedArtifactRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "decisionIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "rightsReviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "originalityWarnings": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blockedContent": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "description": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "blockedClass": {
                                "type": "string",
                                "enum": [
                                  "source-media",
                                  "extracted-asset",
                                  "near-copy-prompt",
                                  "high-resolution-crop",
                                  "proprietary-game-asset"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "description",
                              "blockedClass",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "backlinkId": {
                          "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)$"
                        },
                        "downstreamImpactRefs": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "destination",
                        "payloads",
                        "producedArtifactRef",
                        "decisionIds",
                        "rightsReviewState",
                        "originalityWarnings",
                        "blockedContent",
                        "backlinkId",
                        "downstreamImpactRefs"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "transfer"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/project-transfers/{transferId}": {
      "get": {
        "operationId": "getProjectTransfer",
        "parameters": [
          {
            "name": "transferId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b21dc668-44d7-477a-a7e5-9815e4d98b11"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "transfer": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "projectId": {
                          "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)$"
                        },
                        "destination": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "yemaya-production",
                                "instrumented-game"
                              ]
                            },
                            "projectRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "kind",
                            "projectRef",
                            "label"
                          ],
                          "additionalProperties": false
                        },
                        "payloads": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "principle"
                                  },
                                  "principleId": {
                                    "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)$"
                                  },
                                  "wording": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "principleId",
                                  "wording"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "constraint"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "question"
                                  },
                                  "text": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "text"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "kind": {
                                    "type": "string",
                                    "const": "task"
                                  },
                                  "description": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 5000
                                  }
                                },
                                "required": [
                                  "kind",
                                  "description"
                                ],
                                "additionalProperties": false
                              }
                            ]
                          }
                        },
                        "producedArtifactRef": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "decisionIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "rightsReviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "originalityWarnings": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "blockedContent": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "description": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              },
                              "blockedClass": {
                                "type": "string",
                                "enum": [
                                  "source-media",
                                  "extracted-asset",
                                  "near-copy-prompt",
                                  "high-resolution-crop",
                                  "proprietary-game-asset"
                                ]
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1000
                              }
                            },
                            "required": [
                              "description",
                              "blockedClass",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "backlinkId": {
                          "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)$"
                        },
                        "downstreamImpactRefs": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "projectId",
                        "destination",
                        "payloads",
                        "producedArtifactRef",
                        "decisionIds",
                        "rightsReviewState",
                        "originalityWarnings",
                        "blockedContent",
                        "backlinkId",
                        "downstreamImpactRefs"
                      ],
                      "additionalProperties": false
                    },
                    "delivered": {
                      "type": "boolean"
                    },
                    "rightsReviewState": {
                      "type": "string",
                      "enum": [
                        "suggested",
                        "accepted",
                        "corrected",
                        "contested",
                        "rejected",
                        "superseded"
                      ]
                    },
                    "downstreamDependencyCount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "transfer",
                    "delivered",
                    "rightsReviewState",
                    "downstreamDependencyCount"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/project-transfers": {
      "get": {
        "operationId": "listProjectTransfers",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "transfers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "projectId": {
                            "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)$"
                          },
                          "destination": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          },
                          "payloads": {
                            "minItems": 1,
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "principle"
                                    },
                                    "principleId": {
                                      "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)$"
                                    },
                                    "wording": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 5000
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "principleId",
                                    "wording"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "constraint"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "text"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "question"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "text"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "task"
                                    },
                                    "description": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 5000
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "description"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "producedArtifactRef": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "decisionIds": {
                            "minItems": 1,
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          },
                          "rightsReviewState": {
                            "type": "string",
                            "enum": [
                              "suggested",
                              "accepted",
                              "corrected",
                              "contested",
                              "rejected",
                              "superseded"
                            ]
                          },
                          "originalityWarnings": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 1000
                            }
                          },
                          "blockedContent": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "description": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                },
                                "blockedClass": {
                                  "type": "string",
                                  "enum": [
                                    "source-media",
                                    "extracted-asset",
                                    "near-copy-prompt",
                                    "high-resolution-crop",
                                    "proprietary-game-asset"
                                  ]
                                },
                                "reason": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "description",
                                "blockedClass",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "backlinkId": {
                            "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)$"
                          },
                          "downstreamImpactRefs": {
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            }
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "projectId",
                          "destination",
                          "payloads",
                          "producedArtifactRef",
                          "decisionIds",
                          "rightsReviewState",
                          "originalityWarnings",
                          "blockedContent",
                          "backlinkId",
                          "downstreamImpactRefs"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "transfers"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/members": {
      "post": {
        "operationId": "shareProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "editor",
                      "commenter",
                      "viewer"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "userId",
                  "role",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "project": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "purpose": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "members": {
                          "minItems": 1,
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "joinedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "userId",
                              "role",
                              "joinedAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "membershipHistory": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "added",
                                  "role-changed",
                                  "removed"
                                ]
                              },
                              "userId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "role": {
                                "type": "string",
                                "enum": [
                                  "owner",
                                  "editor",
                                  "commenter",
                                  "viewer"
                                ]
                              },
                              "actorUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              }
                            },
                            "required": [
                              "kind",
                              "userId",
                              "actorUserId",
                              "occurredAt"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "curriculum": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "policyGrantIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "sourceWorkIds": {
                          "maxItems": 2000,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "notebookRefs": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 160
                          }
                        },
                        "inspirationCollectionIds": {
                          "maxItems": 500,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "targetProjects": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "yemaya-production",
                                  "instrumented-game"
                                ]
                              },
                              "projectRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "required": [
                              "kind",
                              "projectRef",
                              "label"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "archiveState": {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "name",
                        "purpose",
                        "members",
                        "membershipHistory",
                        "curriculum",
                        "policyGrantIds",
                        "sourceWorkIds",
                        "notebookRefs",
                        "inspirationCollectionIds",
                        "targetProjects",
                        "archiveState"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "project"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "project": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "name": "Kurosawa staging study",
                    "purpose": "Understand deep-space staging and weather as dramatic material.",
                    "members": [
                      {
                        "userId": "u1",
                        "role": "owner",
                        "joinedAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "membershipHistory": [
                      {
                        "kind": "added",
                        "userId": "u1",
                        "role": "owner",
                        "actorUserId": "u1",
                        "occurredAt": "2026-07-18T10:00:00+00:00"
                      }
                    ],
                    "curriculum": [],
                    "policyGrantIds": [],
                    "sourceWorkIds": [],
                    "notebookRefs": [],
                    "inspirationCollectionIds": [],
                    "targetProjects": [],
                    "archiveState": "active"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/anchors/{anchorId}/representations": {
      "post": {
        "operationId": "generateRepresentation",
        "parameters": [
          {
            "name": "anchorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "281b9a5a-4f9f-4eea-a17a-60a7b318f049"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "thumbnail",
                      "crop",
                      "waveform",
                      "feature-vector",
                      "transcript-excerpt",
                      "provider-deep-link",
                      "metadata-only"
                    ]
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "kind",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "objectKey": {
                      "type": "string",
                      "minLength": 1
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "expiresInSeconds": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    },
                    "contentType": {
                      "type": "string",
                      "minLength": 1
                    },
                    "byteSize": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "objectKey",
                    "url",
                    "expiresInSeconds",
                    "contentType",
                    "byteSize"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/links": {
      "post": {
        "operationId": "createLink",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "relationType": {
                    "type": "string",
                    "enum": [
                      "identity",
                      "similarity",
                      "contrast",
                      "influence",
                      "analogy",
                      "shared-function",
                      "transformation",
                      "sequence",
                      "evolution",
                      "support",
                      "contradiction",
                      "counterexample",
                      "avoidance",
                      "derived-principle",
                      "informed-decision"
                    ]
                  },
                  "anchorAId": {
                    "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)$"
                  },
                  "anchorBId": {
                    "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)$"
                  },
                  "rationale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "contextBounds": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "relationType",
                  "anchorAId",
                  "anchorBId",
                  "rationale",
                  "contextBounds",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "link": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "relationType": {
                          "type": "string",
                          "enum": [
                            "identity",
                            "similarity",
                            "contrast",
                            "influence",
                            "analogy",
                            "shared-function",
                            "transformation",
                            "sequence",
                            "evolution",
                            "support",
                            "contradiction",
                            "counterexample",
                            "avoidance",
                            "derived-principle",
                            "informed-decision"
                          ]
                        },
                        "directed": {
                          "type": "boolean"
                        },
                        "endpointA": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "endpointB": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "corpus",
                                "work",
                                "edition",
                                "sequence",
                                "scene",
                                "encounter",
                                "shot",
                                "beat",
                                "frame",
                                "image",
                                "region",
                                "entity",
                                "material",
                                "palette",
                                "pose",
                                "motion",
                                "sound",
                                "transcript",
                                "runtime-event",
                                "document-passage",
                                "claim",
                                "principle",
                                "original-concept",
                                "creative-decision",
                                "production-artifact",
                                "anchor",
                                "segment",
                                "comparison-set",
                                "inspiration-item"
                              ]
                            },
                            "refId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "refRevision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "kind",
                            "refId",
                            "refRevision"
                          ],
                          "additionalProperties": false
                        },
                        "rationale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 5000
                        },
                        "evidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "counterevidenceAnchorIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "author": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "human"
                                },
                                "userId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                }
                              },
                              "required": [
                                "kind",
                                "userId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "model"
                                },
                                "modelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "analysisRunId": {
                                  "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)$"
                                }
                              },
                              "required": [
                                "kind",
                                "modelId",
                                "modelVersion"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "imported-system"
                                },
                                "systemId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "importBatchId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "kind",
                                "systemId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "collaborative-group"
                                },
                                "groupId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                "memberUserIds": {
                                  "maxItems": 500,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                }
                              },
                              "required": [
                                "kind",
                                "groupId"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "confidence": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "calibrated"
                                },
                                "value": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "calibration": {
                                  "type": "object",
                                  "properties": {
                                    "method": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "calibrationSetId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "calibrationSetVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 80
                                    },
                                    "validatedAt": {
                                      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                    }
                                  },
                                  "required": [
                                    "method",
                                    "calibrationSetId",
                                    "calibrationSetVersion",
                                    "validatedAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "interval": {
                                  "type": "object",
                                  "properties": {
                                    "lower": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "upper": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "coverage": {
                                      "type": "number",
                                      "exclusiveMinimum": 0,
                                      "exclusiveMaximum": 1
                                    }
                                  },
                                  "required": [
                                    "lower",
                                    "upper",
                                    "coverage"
                                  ],
                                  "additionalProperties": false
                                },
                                "applicabilityBoundary": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1000
                                }
                              },
                              "required": [
                                "status",
                                "value",
                                "calibration",
                                "interval",
                                "applicabilityBoundary"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "uncalibrated"
                                },
                                "rawScore": {
                                  "type": "number"
                                },
                                "scale": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "status",
                                "rawScore",
                                "scale"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "status": {
                                  "type": "string",
                                  "const": "missing"
                                },
                                "reason": {
                                  "type": "string",
                                  "enum": [
                                    "not-applicable",
                                    "not-yet-calibrated",
                                    "legacy-import",
                                    "processor-omitted"
                                  ]
                                }
                              },
                              "required": [
                                "status",
                                "reason"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "reviewState": {
                          "type": "string",
                          "enum": [
                            "suggested",
                            "accepted",
                            "corrected",
                            "contested",
                            "rejected",
                            "superseded"
                          ]
                        },
                        "contextBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "culturalBounds": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "limitations": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "rightsGrantIds": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "validFrom": {
                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "relationType",
                        "directed",
                        "endpointA",
                        "endpointB",
                        "rationale",
                        "evidenceAnchorIds",
                        "counterevidenceAnchorIds",
                        "author",
                        "confidence",
                        "reviewState",
                        "contextBounds",
                        "rightsGrantIds",
                        "validFrom",
                        "validUntil"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "link"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/expiry-sweep": {
      "post": {
        "operationId": "expirySweep",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "expired": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "workId": {
                            "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)$"
                          },
                          "projectId": {
                            "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)$"
                          },
                          "deletedObjectKeys": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "tombstonedRecords": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "family": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "family",
                                "id"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "openedReviewTaskIds": {
                            "type": "array",
                            "items": {
                              "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)$"
                            }
                          }
                        },
                        "required": [
                          "workId",
                          "projectId",
                          "deletedObjectKeys",
                          "tombstonedRecords",
                          "openedReviewTaskIds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "objectLifecycle": {
                      "type": "object",
                      "properties": {
                        "deletedTempKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "deletedQuarantineKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "deletedDerivativeKeys": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "deletedTempKeys",
                        "deletedQuarantineKeys",
                        "deletedDerivativeKeys"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "expired",
                    "objectLifecycle"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projection-drain": {
      "post": {
        "operationId": "projectionDrain",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "processed": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "failed": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "skipped": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "processed",
                    "failed",
                    "skipped"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/legal-hold": {
      "post": {
        "operationId": "setLegalHold",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "hold": {
                    "type": "boolean"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "hold",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "workId": {
                      "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)$"
                    },
                    "hold": {
                      "type": "boolean"
                    },
                    "transitioned": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "family": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "family",
                          "id"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "workId",
                    "hold",
                    "transitioned"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/transfer": {
      "post": {
        "operationId": "requestTransfer",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "destination": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "yemaya-production",
                          "instrumented-game"
                        ]
                      },
                      "projectRef": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "kind",
                      "projectRef"
                    ],
                    "additionalProperties": false
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "destination",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "503": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "transfer_unavailable"
                    },
                    "message": {
                      "type": "string",
                      "minLength": 1
                    },
                    "missingChecks": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  },
                  "required": [
                    "error",
                    "message",
                    "missingChecks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/projects/{projectId}/stream": {
      "get": {
        "operationId": "streamProjectEvents",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "bb7cd410-9b9e-4488-a7c2-1199674ba065"
          },
          {
            "name": "Last-Event-ID",
            "in": "header",
            "required": false,
            "description": "Resume the stream after this durable event seq (YSD-6064).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/acquisition-capabilities": {
      "get": {
        "operationId": "acquisitionCapabilities",
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "capability": {
                            "type": "string",
                            "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "supported",
                              "unsupported",
                              "unavailable"
                            ]
                          },
                          "detail": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "adapterContractVersion": {
                            "type": "string",
                            "pattern": "^\\d+\\.\\d+\\.\\d+$"
                          }
                        },
                        "required": [
                          "capability",
                          "status",
                          "adapterContractVersion"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "capabilities"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/creator-assets": {
      "post": {
        "operationId": "registerCreatorAsset",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "editionId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "assetKind": {
                    "type": "string",
                    "enum": [
                      "project-asset",
                      "scene"
                    ]
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "nativeRef": {
                    "type": "object",
                    "properties": {
                      "domain": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9-]*$"
                      },
                      "kind": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "nativeId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 512
                      },
                      "nativeVersion": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 160
                      }
                    },
                    "required": [
                      "domain",
                      "kind",
                      "nativeId"
                    ],
                    "additionalProperties": false
                  },
                  "storage": {
                    "type": "object",
                    "properties": {
                      "objectKey": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1024
                      },
                      "contentHash": {
                        "type": "string",
                        "pattern": "^sha256:[0-9a-f]{64}$"
                      },
                      "byteSize": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "contentType": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "objectKey",
                      "contentHash",
                      "byteSize",
                      "contentType"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "editionId",
                  "territory",
                  "assetKind",
                  "label",
                  "nativeRef",
                  "storage"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "asset": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "file",
                            "stream-reference",
                            "transcript",
                            "subtitle",
                            "still",
                            "telemetry-bundle",
                            "document",
                            "commentary",
                            "project-asset",
                            "scene"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "storage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "object-store"
                                },
                                "objectKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "contentHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "byteSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "contentType": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "storageKind",
                                "objectKey",
                                "contentHash",
                                "byteSize",
                                "contentType"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "provider-link"
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "deepLink": {
                                  "type": "string",
                                  "maxLength": 2048,
                                  "format": "uri"
                                },
                                "lastVerifiedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "storageKind",
                                "provider",
                                "deepLink",
                                "lastVerifiedAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "trackIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "nativeRef": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        },
                        "sidecars": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "object": {
                                "type": "object",
                                "properties": {
                                  "storageKind": {
                                    "type": "string",
                                    "const": "object-store"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "byteSize": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "storageKind",
                                  "objectKey",
                                  "contentHash",
                                  "byteSize",
                                  "contentType"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "label",
                              "object"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syntheticMedia": {
                          "type": "object",
                          "properties": {
                            "disposition": {
                              "type": "string",
                              "enum": [
                                "ai-generated",
                                "ai-modified",
                                "not-ai",
                                "indeterminate"
                              ]
                            },
                            "basis": {
                              "type": "string",
                              "enum": [
                                "creator-declared",
                                "provider-declared",
                                "detected"
                              ]
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "confidence": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "calibrated"
                                    },
                                    "value": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "calibration": {
                                      "type": "object",
                                      "properties": {
                                        "method": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "calibrationSetId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "calibrationSetVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "validatedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "method",
                                        "calibrationSetId",
                                        "calibrationSetVersion",
                                        "validatedAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "interval": {
                                      "type": "object",
                                      "properties": {
                                        "lower": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "upper": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "coverage": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "exclusiveMaximum": 1
                                        }
                                      },
                                      "required": [
                                        "lower",
                                        "upper",
                                        "coverage"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "applicabilityBoundary": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "value",
                                    "calibration",
                                    "interval",
                                    "applicabilityBoundary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "uncalibrated"
                                    },
                                    "rawScore": {
                                      "type": "number"
                                    },
                                    "scale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "rawScore",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "missing"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "not-applicable",
                                        "not-yet-calibrated",
                                        "legacy-import",
                                        "processor-omitted"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "limitations": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "reviewStatus": {
                              "type": "string",
                              "enum": [
                                "unreviewed",
                                "accepted",
                                "contested"
                              ]
                            },
                            "reviewer": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "determinedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "disposition",
                            "basis",
                            "method",
                            "confidence",
                            "limitations",
                            "reviewStatus",
                            "determinedAt"
                          ],
                          "additionalProperties": false
                        },
                        "proxyOf": {
                          "type": "object",
                          "properties": {
                            "masterAssetId": {
                              "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)$"
                            },
                            "masterTrackId": {
                              "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)$"
                            },
                            "masterStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "masterDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "durationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "masterVariableFrameRate": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "masterAssetId",
                            "masterTrackId",
                            "masterStartFrame",
                            "masterDurationFrames",
                            "durationFrames",
                            "masterVariableFrameRate"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "kind",
                        "label",
                        "storage",
                        "rightsGrantIds",
                        "trackIds",
                        "sidecars"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "asset"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asset": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "editionId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "kind": "file",
                    "label": "restoration.mkv",
                    "storage": {
                      "storageKind": "object-store",
                      "objectKey": "tenant-1/originals/restoration.mkv",
                      "contentHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                      "byteSize": 1024,
                      "contentType": "video/x-matroska"
                    },
                    "rightsGrantIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "trackIds": [],
                    "sidecars": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/assets/{assetId}/inspect": {
      "post": {
        "operationId": "inspectCreatorAsset",
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "d8604eed-bfe4-48e2-a200-698edaa5c2ed"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "inspection": {
                      "type": "object",
                      "properties": {
                        "nativeRef": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        },
                        "summary": {
                          "type": "string",
                          "minLength": 1
                        },
                        "details": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        },
                        "tool": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1
                            },
                            "codeVersion": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "name",
                            "codeVersion"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "nativeRef",
                        "summary",
                        "details",
                        "tool"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "inspection"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/provider-sources": {
      "post": {
        "operationId": "registerProviderSource",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "editionId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "provider": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "deepLink": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "lastVerifiedAt": {
                    "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  }
                },
                "required": [
                  "projectId",
                  "editionId",
                  "territory",
                  "label",
                  "provider",
                  "deepLink",
                  "lastVerifiedAt"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "asset": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "file",
                            "stream-reference",
                            "transcript",
                            "subtitle",
                            "still",
                            "telemetry-bundle",
                            "document",
                            "commentary",
                            "project-asset",
                            "scene"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "storage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "object-store"
                                },
                                "objectKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "contentHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "byteSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "contentType": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "storageKind",
                                "objectKey",
                                "contentHash",
                                "byteSize",
                                "contentType"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "provider-link"
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "deepLink": {
                                  "type": "string",
                                  "maxLength": 2048,
                                  "format": "uri"
                                },
                                "lastVerifiedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "storageKind",
                                "provider",
                                "deepLink",
                                "lastVerifiedAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "trackIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "nativeRef": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        },
                        "sidecars": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "object": {
                                "type": "object",
                                "properties": {
                                  "storageKind": {
                                    "type": "string",
                                    "const": "object-store"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "byteSize": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "storageKind",
                                  "objectKey",
                                  "contentHash",
                                  "byteSize",
                                  "contentType"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "label",
                              "object"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syntheticMedia": {
                          "type": "object",
                          "properties": {
                            "disposition": {
                              "type": "string",
                              "enum": [
                                "ai-generated",
                                "ai-modified",
                                "not-ai",
                                "indeterminate"
                              ]
                            },
                            "basis": {
                              "type": "string",
                              "enum": [
                                "creator-declared",
                                "provider-declared",
                                "detected"
                              ]
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "confidence": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "calibrated"
                                    },
                                    "value": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "calibration": {
                                      "type": "object",
                                      "properties": {
                                        "method": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "calibrationSetId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "calibrationSetVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "validatedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "method",
                                        "calibrationSetId",
                                        "calibrationSetVersion",
                                        "validatedAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "interval": {
                                      "type": "object",
                                      "properties": {
                                        "lower": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "upper": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "coverage": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "exclusiveMaximum": 1
                                        }
                                      },
                                      "required": [
                                        "lower",
                                        "upper",
                                        "coverage"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "applicabilityBoundary": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "value",
                                    "calibration",
                                    "interval",
                                    "applicabilityBoundary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "uncalibrated"
                                    },
                                    "rawScore": {
                                      "type": "number"
                                    },
                                    "scale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "rawScore",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "missing"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "not-applicable",
                                        "not-yet-calibrated",
                                        "legacy-import",
                                        "processor-omitted"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "limitations": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "reviewStatus": {
                              "type": "string",
                              "enum": [
                                "unreviewed",
                                "accepted",
                                "contested"
                              ]
                            },
                            "reviewer": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "determinedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "disposition",
                            "basis",
                            "method",
                            "confidence",
                            "limitations",
                            "reviewStatus",
                            "determinedAt"
                          ],
                          "additionalProperties": false
                        },
                        "proxyOf": {
                          "type": "object",
                          "properties": {
                            "masterAssetId": {
                              "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)$"
                            },
                            "masterTrackId": {
                              "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)$"
                            },
                            "masterStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "masterDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "durationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "masterVariableFrameRate": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "masterAssetId",
                            "masterTrackId",
                            "masterStartFrame",
                            "masterDurationFrames",
                            "durationFrames",
                            "masterVariableFrameRate"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "kind",
                        "label",
                        "storage",
                        "rightsGrantIds",
                        "trackIds",
                        "sidecars"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "asset"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asset": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "editionId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "kind": "file",
                    "label": "restoration.mkv",
                    "storage": {
                      "storageKind": "object-store",
                      "objectKey": "tenant-1/originals/restoration.mkv",
                      "contentHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                      "byteSize": 1024,
                      "contentType": "video/x-matroska"
                    },
                    "rightsGrantIds": [
                      "7c9e6679-7425-40de-944b-e07fc1f90ae7"
                    ],
                    "trackIds": [],
                    "sidecars": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/provider-sources/{assetId}/playback": {
      "post": {
        "operationId": "resolveProviderPlayback",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "assetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "d8604eed-bfe4-48e2-a200-698edaa5c2ed"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "mode": {
                      "type": "string",
                      "const": "provider-deep-link"
                    },
                    "provider": {
                      "type": "string",
                      "minLength": 1
                    },
                    "deepLink": {
                      "type": "string",
                      "format": "uri"
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "playback",
                                  "frame-extraction",
                                  "proxy-generation",
                                  "transcription",
                                  "embedding",
                                  "model-analysis",
                                  "collaboration",
                                  "teaching",
                                  "publication",
                                  "export",
                                  "model-training",
                                  "project-transfer"
                                ]
                              },
                              "available": {
                                "type": "boolean",
                                "const": true
                              },
                              "mode": {
                                "type": "string",
                                "enum": [
                                  "link-only",
                                  "local-bytes"
                                ]
                              }
                            },
                            "required": [
                              "capability",
                              "available",
                              "mode"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "capability": {
                                "type": "string",
                                "enum": [
                                  "playback",
                                  "frame-extraction",
                                  "proxy-generation",
                                  "transcription",
                                  "embedding",
                                  "model-analysis",
                                  "collaboration",
                                  "teaching",
                                  "publication",
                                  "export",
                                  "model-training",
                                  "project-transfer"
                                ]
                              },
                              "available": {
                                "type": "boolean",
                                "const": false
                              },
                              "reason": {
                                "type": "string",
                                "minLength": 1
                              }
                            },
                            "required": [
                              "capability",
                              "available",
                              "reason"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "mode",
                    "provider",
                    "deepLink",
                    "capabilities"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/collections/{collectionId}/imports": {
      "post": {
        "operationId": "importInspirationReferences",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "provider": {
                    "type": "string",
                    "enum": [
                      "pureref",
                      "milanote",
                      "arena",
                      "pinterest",
                      "zotero"
                    ]
                  },
                  "importPath": {
                    "type": "string",
                    "enum": [
                      "provider-api",
                      "user-initiated-export",
                      "local-file-parse",
                      "local-application-api",
                      "page-scrape"
                    ]
                  },
                  "items": {
                    "minItems": 1,
                    "maxItems": 500,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "externalId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "sourceUrl": {
                          "type": "string",
                          "maxLength": 2048,
                          "format": "uri"
                        },
                        "providerItemType": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "attribution": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "doNotCopyBoundary": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "rightsDeclaration": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "externalId",
                        "title",
                        "attribution",
                        "doNotCopyBoundary",
                        "rightsDeclaration"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "projectId",
                  "provider",
                  "importPath",
                  "items"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "imported": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "provider": {
                            "type": "string",
                            "enum": [
                              "pureref",
                              "milanote",
                              "arena",
                              "pinterest",
                              "zotero",
                              "browser-clip",
                              "desktop-screenshot"
                            ]
                          },
                          "externalId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "quarantineState": {
                            "type": "string",
                            "enum": [
                              "quarantined",
                              "released",
                              "rejected"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "provider",
                          "externalId",
                          "quarantineState"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "dedupedExternalIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  },
                  "required": [
                    "imported",
                    "dedupedExternalIds"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/collections/{collectionId}/clips": {
      "post": {
        "operationId": "clipWebSource",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "attribution": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "doNotCopyBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "rightsDeclaration": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "clip": {
                    "type": "object",
                    "properties": {
                      "pageTitle": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "canonicalUrl": {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri"
                      },
                      "siteName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "context": {
                        "type": "string",
                        "maxLength": 2000
                      },
                      "selection": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "const": "region"
                              },
                              "boundingBox": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0
                                  },
                                  "width": {
                                    "type": "number",
                                    "exclusiveMinimum": 0
                                  },
                                  "height": {
                                    "type": "number",
                                    "exclusiveMinimum": 0
                                  }
                                },
                                "required": [
                                  "x",
                                  "y",
                                  "width",
                                  "height"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "kind",
                              "boundingBox"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "const": "text"
                              },
                              "excerpt": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 5000
                              }
                            },
                            "required": [
                              "kind",
                              "excerpt"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "const": "media"
                              },
                              "mediaUrl": {
                                "type": "string",
                                "maxLength": 2048,
                                "format": "uri"
                              },
                              "mediaType": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "required": [
                              "kind",
                              "mediaUrl",
                              "mediaType"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "allowedPreview": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "thumbnail",
                              "text-snippet"
                            ]
                          },
                          "content": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "kind",
                          "content"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "pageTitle",
                      "canonicalUrl",
                      "context",
                      "selection",
                      "allowedPreview"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "attribution",
                  "doNotCopyBoundary",
                  "rightsDeclaration",
                  "clip"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "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)$"
                    },
                    "quarantineState": {
                      "type": "string",
                      "enum": [
                        "quarantined",
                        "released",
                        "rejected"
                      ]
                    },
                    "webClip": {
                      "type": "object",
                      "properties": {
                        "pageTitle": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "canonicalUrl": {
                          "type": "string",
                          "maxLength": 2048,
                          "format": "uri"
                        },
                        "siteName": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "context": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "selection": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "region"
                                },
                                "boundingBox": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    "width": {
                                      "type": "number",
                                      "exclusiveMinimum": 0
                                    },
                                    "height": {
                                      "type": "number",
                                      "exclusiveMinimum": 0
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y",
                                    "width",
                                    "height"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "kind",
                                "boundingBox"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "text"
                                },
                                "excerpt": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 5000
                                }
                              },
                              "required": [
                                "kind",
                                "excerpt"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "media"
                                },
                                "mediaUrl": {
                                  "type": "string",
                                  "maxLength": 2048,
                                  "format": "uri"
                                },
                                "mediaType": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "kind",
                                "mediaUrl",
                                "mediaType"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "allowedPreview": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "thumbnail",
                                "text-snippet"
                              ]
                            },
                            "content": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "kind",
                            "content"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "pageTitle",
                        "canonicalUrl",
                        "context",
                        "selection",
                        "allowedPreview"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "id",
                    "quarantineState"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/collections/{collectionId}/screenshots": {
      "post": {
        "operationId": "captureDesktopScreenshot",
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "37cba6cf-d967-4866-ac9f-8f96c7b91a59"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "attribution": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "doNotCopyBoundary": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "rightsDeclaration": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "capture": {
                    "type": "object",
                    "properties": {
                      "sourceApplication": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                      },
                      "sourceFilePath": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2048
                      },
                      "capturedAt": {
                        "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      "region": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "number",
                            "minimum": 0
                          },
                          "y": {
                            "type": "number",
                            "minimum": 0
                          },
                          "width": {
                            "type": "number",
                            "exclusiveMinimum": 0
                          },
                          "height": {
                            "type": "number",
                            "exclusiveMinimum": 0
                          }
                        },
                        "required": [
                          "x",
                          "y",
                          "width",
                          "height"
                        ],
                        "additionalProperties": false
                      },
                      "rightsClassification": {
                        "type": "string",
                        "enum": [
                          "creator-owned",
                          "licensed",
                          "public-domain",
                          "fair-use-reference",
                          "restricted"
                        ]
                      }
                    },
                    "required": [
                      "capturedAt",
                      "rightsClassification"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "title",
                  "attribution",
                  "doNotCopyBoundary",
                  "rightsDeclaration",
                  "capture"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "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)$"
                    },
                    "quarantineState": {
                      "type": "string",
                      "enum": [
                        "quarantined",
                        "released",
                        "rejected"
                      ]
                    },
                    "rightsClassification": {
                      "type": "string",
                      "enum": [
                        "creator-owned",
                        "licensed",
                        "public-domain",
                        "fair-use-reference",
                        "restricted"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "quarantineState"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/imported-references/{referenceId}/review": {
      "post": {
        "operationId": "reviewImportedReference",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "4c004ca4-4741-4ab4-ab26-5efd87def765"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "release",
                      "reject"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "decision",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "id": {
                      "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)$"
                    },
                    "quarantineState": {
                      "type": "string",
                      "enum": [
                        "quarantined",
                        "released",
                        "rejected"
                      ]
                    },
                    "reviewState": {
                      "type": "string",
                      "enum": [
                        "suggested",
                        "accepted",
                        "corrected",
                        "contested",
                        "rejected",
                        "superseded"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "quarantineState",
                    "reviewState"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/instrumented-sessions": {
      "post": {
        "operationId": "registerInstrumentedSession",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "editionId": {
                    "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)$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "session": {
                    "type": "object",
                    "properties": {
                      "sessionId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "connectorId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "buildContentManifest": {
                        "type": "object",
                        "properties": {
                          "contentManifestHash": {
                            "type": "string",
                            "pattern": "^sha256:[0-9a-f]{64}$"
                          },
                          "platform": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "buildNumber": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          },
                          "patchVersion": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 120
                          }
                        },
                        "required": [
                          "contentManifestHash",
                          "platform",
                          "buildNumber",
                          "patchVersion"
                        ],
                        "additionalProperties": false
                      },
                      "clockMapping": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "const": "deterministic-replay"
                              }
                            },
                            "required": [
                              "kind"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "const": "video-clock-mapping"
                              },
                              "uncertaintyMs": {
                                "type": "number",
                                "minimum": 0
                              }
                            },
                            "required": [
                              "kind",
                              "uncertaintyMs"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      },
                      "replayReferences": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "telemetrySchemas": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "stream": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            },
                            "schemaRef": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "version": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60
                            }
                          },
                          "required": [
                            "stream",
                            "schemaRef",
                            "version"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "privacyPolicy": {
                        "type": "object",
                        "properties": {
                          "capturedCategories": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          },
                          "scrubbedCategories": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 120
                            }
                          }
                        },
                        "required": [
                          "capturedCategories",
                          "scrubbedCategories"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "sessionId",
                      "buildContentManifest",
                      "clockMapping",
                      "replayReferences",
                      "telemetrySchemas",
                      "privacyPolicy"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "projectId",
                  "editionId",
                  "territory",
                  "session"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "edition": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "theatrical-cut",
                            "directors-cut",
                            "extended-cut",
                            "broadcast-version",
                            "restoration",
                            "game-build",
                            "patch",
                            "remaster",
                            "other"
                          ]
                        },
                        "sourceMode": {
                          "type": "string",
                          "enum": [
                            "file",
                            "licensed-stream",
                            "provider-link-only",
                            "internal-production-asset",
                            "unknown"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "platform": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "buildNumber": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "patchVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "region": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "primaryLanguage": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 35
                        },
                        "frameRate": {
                          "type": "object",
                          "properties": {
                            "numerator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 240000
                            },
                            "denominator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1001
                            }
                          },
                          "required": [
                            "numerator",
                            "denominator"
                          ],
                          "additionalProperties": false
                        },
                        "aspectRatio": {
                          "type": "object",
                          "properties": {
                            "horizontal": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "vertical": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "horizontal",
                            "vertical"
                          ],
                          "additionalProperties": false
                        },
                        "colorSpace": {
                          "type": "string",
                          "enum": [
                            "bt709",
                            "bt2020",
                            "srgb",
                            "p3",
                            "rec601",
                            "unknown"
                          ]
                        },
                        "dynamicRange": {
                          "type": "string",
                          "enum": [
                            "sdr",
                            "hdr10",
                            "dolby-vision",
                            "hlg",
                            "unknown"
                          ]
                        },
                        "audioTracks": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "layout": {
                                "type": "string",
                                "enum": [
                                  "mono",
                                  "stereo",
                                  "5.1",
                                  "7.1",
                                  "atmos",
                                  "other"
                                ]
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "original",
                                  "dub",
                                  "commentary",
                                  "descriptive-audio"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "layout",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subtitleTracks": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "subtitles",
                                  "closed-captions",
                                  "sdh",
                                  "forced-narrative"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "technicalRevision": {
                          "type": "object",
                          "properties": {
                            "contentHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "byteSize": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "recordedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "contentHash",
                            "recordedAt"
                          ],
                          "additionalProperties": false
                        },
                        "durationFrames": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "gameCapture": {
                          "type": "object",
                          "properties": {
                            "mods": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "captureConfiguration": {
                              "type": "object",
                              "properties": {
                                "resolution": {
                                  "type": "string",
                                  "pattern": "^\\d{3,5}x\\d{3,5}$"
                                },
                                "captureFrameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "inputOverlay": {
                                  "type": "boolean"
                                },
                                "audioCaptured": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolution",
                                "captureFrameRate",
                                "inputOverlay",
                                "audioCaptured"
                              ],
                              "additionalProperties": false
                            },
                            "settings": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "additionalProperties": {
                                "type": "string",
                                "maxLength": 500
                              }
                            },
                            "device": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "network": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "offline",
                                    "lan",
                                    "online-peer-to-peer",
                                    "online-server"
                                  ]
                                },
                                "region": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "mode"
                              ],
                              "additionalProperties": false
                            },
                            "accessibility": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "mods",
                            "captureConfiguration",
                            "settings",
                            "device",
                            "accessibility"
                          ],
                          "additionalProperties": false
                        },
                        "instrumentedSession": {
                          "type": "object",
                          "properties": {
                            "sessionId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "connectorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "buildContentManifest": {
                              "type": "object",
                              "properties": {
                                "contentManifestHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "platform": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "buildNumber": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "patchVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "contentManifestHash",
                                "platform",
                                "buildNumber",
                                "patchVersion"
                              ],
                              "additionalProperties": false
                            },
                            "clockMapping": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "deterministic-replay"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "video-clock-mapping"
                                    },
                                    "uncertaintyMs": {
                                      "type": "number",
                                      "minimum": 0
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "uncertaintyMs"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "replayReferences": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "kind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "nativeId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 512
                                  },
                                  "nativeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "domain",
                                  "kind",
                                  "nativeId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "telemetrySchemas": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "schemaRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "version": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "required": [
                                  "stream",
                                  "schemaRef",
                                  "version"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "privacyPolicy": {
                              "type": "object",
                              "properties": {
                                "capturedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "scrubbedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                }
                              },
                              "required": [
                                "capturedCategories",
                                "scrubbedCategories"
                              ],
                              "additionalProperties": false
                            },
                            "sourceAuthorityGrantId": {
                              "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)$"
                            },
                            "signature": {
                              "type": "object",
                              "properties": {
                                "algorithm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60
                                },
                                "keyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "signatureB64": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "signedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "canonicalization": {
                                  "type": "string",
                                  "const": "sorted-json-v1"
                                }
                              },
                              "required": [
                                "algorithm",
                                "keyId",
                                "signatureB64",
                                "signedAt",
                                "canonicalization"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "sessionId",
                            "buildContentManifest",
                            "clockMapping",
                            "replayReferences",
                            "telemetrySchemas",
                            "privacyPolicy",
                            "sourceAuthorityGrantId"
                          ],
                          "additionalProperties": false
                        },
                        "projectArtifactLinks": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "asset",
                                  "level",
                                  "animation-graph",
                                  "behavior-tree",
                                  "data-table",
                                  "source-project",
                                  "version"
                                ]
                              },
                              "nativeId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "engine": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "readAtRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "ownership": {
                                "type": "string",
                                "enum": [
                                  "creator-owned",
                                  "explicitly-authorized",
                                  "studied-only",
                                  "extracted-commercial"
                                ]
                              },
                              "authorizationEvidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "linkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "linkedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "kind",
                              "nativeId",
                              "engine",
                              "readAtRevision",
                              "ownership",
                              "linkedAt",
                              "linkedByUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "workId",
                        "kind",
                        "label",
                        "primaryLanguage",
                        "audioTracks",
                        "subtitleTracks",
                        "technicalRevision"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "edition"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "edition": {
                    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
                    "envelope": {
                      "schemaVersion": "0.1.0",
                      "tenantId": "tenant-1",
                      "projectId": null,
                      "createdBy": {
                        "kind": "human",
                        "userId": "u1"
                      },
                      "createdAt": "2026-07-18T10:00:00+00:00",
                      "updatedAt": "2026-07-18T10:00:00+00:00",
                      "revision": 1,
                      "supersedesRevision": null,
                      "supersededByRevision": null,
                      "provenance": {
                        "system": "@yemaya/svc-study-workspace"
                      },
                      "deletionState": "active"
                    },
                    "workId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
                    "kind": "theatrical-cut",
                    "sourceMode": "file",
                    "label": "1954 Japanese theatrical",
                    "primaryLanguage": "ja",
                    "frameRate": {
                      "numerator": 24,
                      "denominator": 1
                    },
                    "audioTracks": [
                      {
                        "language": "ja",
                        "layout": "mono",
                        "kind": "original"
                      }
                    ],
                    "subtitleTracks": [],
                    "technicalRevision": {
                      "contentHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                      "recordedAt": "2026-07-18T10:00:00+00:00"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads": {
      "post": {
        "operationId": "initiateUpload",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "projectId": {
                    "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)$"
                  },
                  "fileName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "contentType": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "declaredByteSize": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "declaredSha256": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  }
                },
                "required": [
                  "projectId",
                  "fileName",
                  "contentType",
                  "declaredByteSize",
                  "declaredSha256",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "const": "duplicate"
                        },
                        "existingAssetId": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "outcome",
                        "existingAssetId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "const": "open"
                        },
                        "session": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1
                            },
                            "state": {
                              "type": "string",
                              "enum": [
                                "open",
                                "paused",
                                "completed",
                                "cancelled",
                                "aborted"
                              ]
                            },
                            "receivedBytes": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "declaredByteSize": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "fileName": {
                              "type": "string",
                              "minLength": 1
                            },
                            "contentType": {
                              "type": "string",
                              "minLength": 1
                            },
                            "createdAt": {
                              "type": "string"
                            },
                            "updatedAt": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "id",
                            "state",
                            "receivedBytes",
                            "declaredByteSize",
                            "fileName",
                            "contentType",
                            "createdAt",
                            "updatedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "outcome",
                        "session"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              }
            }
          },
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "const": "duplicate"
                        },
                        "existingAssetId": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "outcome",
                        "existingAssetId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "outcome": {
                          "type": "string",
                          "const": "open"
                        },
                        "session": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1
                            },
                            "state": {
                              "type": "string",
                              "enum": [
                                "open",
                                "paused",
                                "completed",
                                "cancelled",
                                "aborted"
                              ]
                            },
                            "receivedBytes": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "declaredByteSize": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "fileName": {
                              "type": "string",
                              "minLength": 1
                            },
                            "contentType": {
                              "type": "string",
                              "minLength": 1
                            },
                            "createdAt": {
                              "type": "string"
                            },
                            "updatedAt": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "id",
                            "state",
                            "receivedBytes",
                            "declaredByteSize",
                            "fileName",
                            "contentType",
                            "createdAt",
                            "updatedAt"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "outcome",
                        "session"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads/{id}/chunks": {
      "post": {
        "operationId": "uploadChunk",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "receivedBytes": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "progress": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    }
                  },
                  "required": [
                    "receivedBytes",
                    "progress"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads/{id}/pause": {
      "post": {
        "operationId": "pauseUpload",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "session": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "open",
                            "paused",
                            "completed",
                            "cancelled",
                            "aborted"
                          ]
                        },
                        "receivedBytes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "declaredByteSize": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "fileName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "contentType": {
                          "type": "string",
                          "minLength": 1
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "state",
                        "receivedBytes",
                        "declaredByteSize",
                        "fileName",
                        "contentType",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "session"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads/{id}/resume": {
      "post": {
        "operationId": "resumeUpload",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "session": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "open",
                            "paused",
                            "completed",
                            "cancelled",
                            "aborted"
                          ]
                        },
                        "receivedBytes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "declaredByteSize": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "fileName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "contentType": {
                          "type": "string",
                          "minLength": 1
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "state",
                        "receivedBytes",
                        "declaredByteSize",
                        "fileName",
                        "contentType",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    },
                    "resumeFromOffset": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "session",
                    "resumeFromOffset"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads/{id}/complete": {
      "post": {
        "operationId": "completeUpload",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "workId": {
                    "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)$"
                  },
                  "editionLabel": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "primaryLanguage": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 35
                  },
                  "territory": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "editionKind": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "sourceMode": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "platform": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  }
                },
                "required": [
                  "workId",
                  "editionLabel",
                  "primaryLanguage",
                  "territory"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "edition": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "workId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "theatrical-cut",
                            "directors-cut",
                            "extended-cut",
                            "broadcast-version",
                            "restoration",
                            "game-build",
                            "patch",
                            "remaster",
                            "other"
                          ]
                        },
                        "sourceMode": {
                          "type": "string",
                          "enum": [
                            "file",
                            "licensed-stream",
                            "provider-link-only",
                            "internal-production-asset",
                            "unknown"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "platform": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "buildNumber": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "patchVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 120
                        },
                        "region": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 80
                        },
                        "primaryLanguage": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 35
                        },
                        "frameRate": {
                          "type": "object",
                          "properties": {
                            "numerator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 240000
                            },
                            "denominator": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1001
                            }
                          },
                          "required": [
                            "numerator",
                            "denominator"
                          ],
                          "additionalProperties": false
                        },
                        "aspectRatio": {
                          "type": "object",
                          "properties": {
                            "horizontal": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "vertical": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "horizontal",
                            "vertical"
                          ],
                          "additionalProperties": false
                        },
                        "colorSpace": {
                          "type": "string",
                          "enum": [
                            "bt709",
                            "bt2020",
                            "srgb",
                            "p3",
                            "rec601",
                            "unknown"
                          ]
                        },
                        "dynamicRange": {
                          "type": "string",
                          "enum": [
                            "sdr",
                            "hdr10",
                            "dolby-vision",
                            "hlg",
                            "unknown"
                          ]
                        },
                        "audioTracks": {
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "layout": {
                                "type": "string",
                                "enum": [
                                  "mono",
                                  "stereo",
                                  "5.1",
                                  "7.1",
                                  "atmos",
                                  "other"
                                ]
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "original",
                                  "dub",
                                  "commentary",
                                  "descriptive-audio"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "layout",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "subtitleTracks": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "language": {
                                "type": "string",
                                "minLength": 2,
                                "maxLength": 35
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "subtitles",
                                  "closed-captions",
                                  "sdh",
                                  "forced-narrative"
                                ]
                              }
                            },
                            "required": [
                              "language",
                              "kind"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "technicalRevision": {
                          "type": "object",
                          "properties": {
                            "contentHash": {
                              "type": "string",
                              "pattern": "^sha256:[0-9a-f]{64}$"
                            },
                            "byteSize": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "recordedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "contentHash",
                            "recordedAt"
                          ],
                          "additionalProperties": false
                        },
                        "durationFrames": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 9007199254740991
                        },
                        "gameCapture": {
                          "type": "object",
                          "properties": {
                            "mods": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            },
                            "captureConfiguration": {
                              "type": "object",
                              "properties": {
                                "resolution": {
                                  "type": "string",
                                  "pattern": "^\\d{3,5}x\\d{3,5}$"
                                },
                                "captureFrameRate": {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 240000
                                    },
                                    "denominator": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 1001
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                "inputOverlay": {
                                  "type": "boolean"
                                },
                                "audioCaptured": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolution",
                                "captureFrameRate",
                                "inputOverlay",
                                "audioCaptured"
                              ],
                              "additionalProperties": false
                            },
                            "settings": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "additionalProperties": {
                                "type": "string",
                                "maxLength": 500
                              }
                            },
                            "device": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "network": {
                              "type": "object",
                              "properties": {
                                "mode": {
                                  "type": "string",
                                  "enum": [
                                    "offline",
                                    "lan",
                                    "online-peer-to-peer",
                                    "online-server"
                                  ]
                                },
                                "region": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 80
                                }
                              },
                              "required": [
                                "mode"
                              ],
                              "additionalProperties": false
                            },
                            "accessibility": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "mods",
                            "captureConfiguration",
                            "settings",
                            "device",
                            "accessibility"
                          ],
                          "additionalProperties": false
                        },
                        "instrumentedSession": {
                          "type": "object",
                          "properties": {
                            "sessionId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "connectorId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "buildContentManifest": {
                              "type": "object",
                              "properties": {
                                "contentManifestHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "platform": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "buildNumber": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "patchVersion": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                }
                              },
                              "required": [
                                "contentManifestHash",
                                "platform",
                                "buildNumber",
                                "patchVersion"
                              ],
                              "additionalProperties": false
                            },
                            "clockMapping": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "deterministic-replay"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "video-clock-mapping"
                                    },
                                    "uncertaintyMs": {
                                      "type": "number",
                                      "minimum": 0
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "uncertaintyMs"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "replayReferences": {
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "domain": {
                                    "type": "string",
                                    "pattern": "^[a-z][a-z0-9-]*$"
                                  },
                                  "kind": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 80
                                  },
                                  "nativeId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 512
                                  },
                                  "nativeVersion": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  }
                                },
                                "required": [
                                  "domain",
                                  "kind",
                                  "nativeId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "telemetrySchemas": {
                              "maxItems": 100,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "stream": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  },
                                  "schemaRef": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 300
                                  },
                                  "version": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 60
                                  }
                                },
                                "required": [
                                  "stream",
                                  "schemaRef",
                                  "version"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "privacyPolicy": {
                              "type": "object",
                              "properties": {
                                "capturedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                },
                                "scrubbedCategories": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 120
                                  }
                                }
                              },
                              "required": [
                                "capturedCategories",
                                "scrubbedCategories"
                              ],
                              "additionalProperties": false
                            },
                            "sourceAuthorityGrantId": {
                              "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)$"
                            },
                            "signature": {
                              "type": "object",
                              "properties": {
                                "algorithm": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60
                                },
                                "keyId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "signatureB64": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "signedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                },
                                "canonicalization": {
                                  "type": "string",
                                  "const": "sorted-json-v1"
                                }
                              },
                              "required": [
                                "algorithm",
                                "keyId",
                                "signatureB64",
                                "signedAt",
                                "canonicalization"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "sessionId",
                            "buildContentManifest",
                            "clockMapping",
                            "replayReferences",
                            "telemetrySchemas",
                            "privacyPolicy",
                            "sourceAuthorityGrantId"
                          ],
                          "additionalProperties": false
                        },
                        "projectArtifactLinks": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "asset",
                                  "level",
                                  "animation-graph",
                                  "behavior-tree",
                                  "data-table",
                                  "source-project",
                                  "version"
                                ]
                              },
                              "nativeId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "engine": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              },
                              "readAtRevision": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "ownership": {
                                "type": "string",
                                "enum": [
                                  "creator-owned",
                                  "explicitly-authorized",
                                  "studied-only",
                                  "extracted-commercial"
                                ]
                              },
                              "authorizationEvidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024
                              },
                              "linkedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "linkedByUserId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              }
                            },
                            "required": [
                              "kind",
                              "nativeId",
                              "engine",
                              "readAtRevision",
                              "ownership",
                              "linkedAt",
                              "linkedByUserId"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "workId",
                        "kind",
                        "label",
                        "primaryLanguage",
                        "audioTracks",
                        "subtitleTracks",
                        "technicalRevision"
                      ],
                      "additionalProperties": false
                    },
                    "asset": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "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)$"
                        },
                        "envelope": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string",
                              "pattern": "^\\d+\\.\\d+\\.\\d+$"
                            },
                            "tenantId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            "projectId": {
                              "anyOf": [
                                {
                                  "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)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdBy": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "human"
                                    },
                                    "userId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "userId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "model"
                                    },
                                    "modelId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "modelVersion": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 120
                                    },
                                    "analysisRunId": {
                                      "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)$"
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "modelId",
                                    "modelVersion"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "imported-system"
                                    },
                                    "systemId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "importBatchId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "systemId"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "collaborative-group"
                                    },
                                    "groupId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    "memberUserIds": {
                                      "maxItems": 500,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groupId"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "createdAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "updatedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "revision": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 9007199254740991
                            },
                            "supersedesRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "supersededByRevision": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "provenance": {
                              "type": "object",
                              "properties": {
                                "system": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "context": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "system"
                              ],
                              "additionalProperties": false
                            },
                            "deletionState": {
                              "type": "string",
                              "enum": [
                                "active",
                                "soft-deleted",
                                "tombstoned",
                                "legal-hold"
                              ]
                            },
                            "changeReason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            }
                          },
                          "required": [
                            "schemaVersion",
                            "tenantId",
                            "projectId",
                            "createdBy",
                            "createdAt",
                            "updatedAt",
                            "revision",
                            "supersedesRevision",
                            "supersededByRevision",
                            "provenance",
                            "deletionState"
                          ],
                          "additionalProperties": false
                        },
                        "editionId": {
                          "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)$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "file",
                            "stream-reference",
                            "transcript",
                            "subtitle",
                            "still",
                            "telemetry-bundle",
                            "document",
                            "commentary",
                            "project-asset",
                            "scene"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        "storage": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "object-store"
                                },
                                "objectKey": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 1024
                                },
                                "contentHash": {
                                  "type": "string",
                                  "pattern": "^sha256:[0-9a-f]{64}$"
                                },
                                "byteSize": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "contentType": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "storageKind",
                                "objectKey",
                                "contentHash",
                                "byteSize",
                                "contentType"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "storageKind": {
                                  "type": "string",
                                  "const": "provider-link"
                                },
                                "provider": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 120
                                },
                                "deepLink": {
                                  "type": "string",
                                  "maxLength": 2048,
                                  "format": "uri"
                                },
                                "lastVerifiedAt": {
                                  "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                }
                              },
                              "required": [
                                "storageKind",
                                "provider",
                                "deepLink",
                                "lastVerifiedAt"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "rightsGrantIds": {
                          "minItems": 1,
                          "maxItems": 50,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "trackIds": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "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)$"
                          }
                        },
                        "nativeRef": {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9-]*$"
                            },
                            "kind": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 80
                            },
                            "nativeId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            "nativeVersion": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            }
                          },
                          "required": [
                            "domain",
                            "kind",
                            "nativeId"
                          ],
                          "additionalProperties": false
                        },
                        "sidecars": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 200
                              },
                              "object": {
                                "type": "object",
                                "properties": {
                                  "storageKind": {
                                    "type": "string",
                                    "const": "object-store"
                                  },
                                  "objectKey": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 1024
                                  },
                                  "contentHash": {
                                    "type": "string",
                                    "pattern": "^sha256:[0-9a-f]{64}$"
                                  },
                                  "byteSize": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "contentType": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "storageKind",
                                  "objectKey",
                                  "contentHash",
                                  "byteSize",
                                  "contentType"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "label",
                              "object"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "syntheticMedia": {
                          "type": "object",
                          "properties": {
                            "disposition": {
                              "type": "string",
                              "enum": [
                                "ai-generated",
                                "ai-modified",
                                "not-ai",
                                "indeterminate"
                              ]
                            },
                            "basis": {
                              "type": "string",
                              "enum": [
                                "creator-declared",
                                "provider-declared",
                                "detected"
                              ]
                            },
                            "method": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 300
                            },
                            "confidence": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "calibrated"
                                    },
                                    "value": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "calibration": {
                                      "type": "object",
                                      "properties": {
                                        "method": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 120
                                        },
                                        "calibrationSetId": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        },
                                        "calibrationSetVersion": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 80
                                        },
                                        "validatedAt": {
                                          "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                                        }
                                      },
                                      "required": [
                                        "method",
                                        "calibrationSetId",
                                        "calibrationSetVersion",
                                        "validatedAt"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "interval": {
                                      "type": "object",
                                      "properties": {
                                        "lower": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "upper": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "coverage": {
                                          "type": "number",
                                          "exclusiveMinimum": 0,
                                          "exclusiveMaximum": 1
                                        }
                                      },
                                      "required": [
                                        "lower",
                                        "upper",
                                        "coverage"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "applicabilityBoundary": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "value",
                                    "calibration",
                                    "interval",
                                    "applicabilityBoundary"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "uncalibrated"
                                    },
                                    "rawScore": {
                                      "type": "number"
                                    },
                                    "scale": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "rawScore",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "const": "missing"
                                    },
                                    "reason": {
                                      "type": "string",
                                      "enum": [
                                        "not-applicable",
                                        "not-yet-calibrated",
                                        "legacy-import",
                                        "processor-omitted"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "reason"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "limitations": {
                              "maxItems": 20,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "reviewStatus": {
                              "type": "string",
                              "enum": [
                                "unreviewed",
                                "accepted",
                                "contested"
                              ]
                            },
                            "reviewer": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "reviewedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            },
                            "determinedAt": {
                              "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                            }
                          },
                          "required": [
                            "disposition",
                            "basis",
                            "method",
                            "confidence",
                            "limitations",
                            "reviewStatus",
                            "determinedAt"
                          ],
                          "additionalProperties": false
                        },
                        "proxyOf": {
                          "type": "object",
                          "properties": {
                            "masterAssetId": {
                              "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)$"
                            },
                            "masterTrackId": {
                              "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)$"
                            },
                            "masterStartFrame": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "masterDurationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "durationFrames": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 10000000
                            },
                            "masterVariableFrameRate": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "masterAssetId",
                            "masterTrackId",
                            "masterStartFrame",
                            "masterDurationFrames",
                            "durationFrames",
                            "masterVariableFrameRate"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "envelope",
                        "editionId",
                        "kind",
                        "label",
                        "storage",
                        "rightsGrantIds",
                        "trackIds",
                        "sidecars"
                      ],
                      "additionalProperties": false
                    },
                    "tracks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "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)$"
                          },
                          "envelope": {
                            "type": "object",
                            "properties": {
                              "schemaVersion": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d+\\.\\d+$"
                              },
                              "tenantId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 160
                              },
                              "projectId": {
                                "anyOf": [
                                  {
                                    "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)$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "createdBy": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "human"
                                      },
                                      "userId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "userId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "model"
                                      },
                                      "modelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "modelVersion": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 120
                                      },
                                      "analysisRunId": {
                                        "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)$"
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "modelId",
                                      "modelVersion"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "imported-system"
                                      },
                                      "systemId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "importBatchId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "systemId"
                                    ],
                                    "additionalProperties": false
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "collaborative-group"
                                      },
                                      "groupId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 160
                                      },
                                      "memberUserIds": {
                                        "maxItems": 500,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 160
                                        }
                                      }
                                    },
                                    "required": [
                                      "kind",
                                      "groupId"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "createdAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "updatedAt": {
                                "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                              },
                              "revision": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9007199254740991
                              },
                              "supersedesRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "supersededByRevision": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 9007199254740991
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "provenance": {
                                "type": "object",
                                "properties": {
                                  "system": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "context": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "system"
                                ],
                                "additionalProperties": false
                              },
                              "deletionState": {
                                "type": "string",
                                "enum": [
                                  "active",
                                  "soft-deleted",
                                  "tombstoned",
                                  "legal-hold"
                                ]
                              },
                              "changeReason": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 2000
                              }
                            },
                            "required": [
                              "schemaVersion",
                              "tenantId",
                              "projectId",
                              "createdBy",
                              "createdAt",
                              "updatedAt",
                              "revision",
                              "supersedesRevision",
                              "supersededByRevision",
                              "provenance",
                              "deletionState"
                            ],
                            "additionalProperties": false
                          },
                          "assetId": {
                            "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)$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "video",
                              "audio",
                              "subtitle",
                              "transcript",
                              "telemetry",
                              "camera",
                              "animation",
                              "gameplay",
                              "commentary",
                              "custom"
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                          },
                          "containerIndex": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 35
                          },
                          "codecName": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "disposition": {
                            "type": "object",
                            "properties": {
                              "default": {
                                "type": "boolean"
                              },
                              "forced": {
                                "type": "boolean"
                              },
                              "hearingImpaired": {
                                "type": "boolean"
                              }
                            },
                            "additionalProperties": false
                          },
                          "frameRate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 240000
                              },
                              "denominator": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 1001
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "sampleRateHz": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1536000
                          },
                          "customKindLabel": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "id",
                          "envelope",
                          "assetId",
                          "kind",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "edition",
                    "asset",
                    "tracks"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/uploads/{id}/cancel": {
      "post": {
        "operationId": "cancelUpload",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "session": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "open",
                            "paused",
                            "completed",
                            "cancelled",
                            "aborted"
                          ]
                        },
                        "receivedBytes": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "declaredByteSize": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "fileName": {
                          "type": "string",
                          "minLength": 1
                        },
                        "contentType": {
                          "type": "string",
                          "minLength": 1
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "state",
                        "receivedBytes",
                        "declaredByteSize",
                        "fileName",
                        "contentType",
                        "createdAt",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "session"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "409": {
            "description": "conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/study/works/{workId}/captions/{trackId}/vtt": {
      "get": {
        "operationId": "captionTrackVtt",
        "parameters": [
          {
            "name": "workId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "67baf6be-da00-4012-aabf-566b935b8ac1"
          },
          {
            "name": "trackId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "186e16f2-9803-498c-a554-b03f8a523a79"
          },
          {
            "name": "territory",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "401": {
            "description": "unauthenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "403": {
            "description": "forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          },
          "500": {
            "description": "internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyError"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "StudyError": {
        "type": "object",
        "required": [
          "code",
          "category",
          "message",
          "retryable",
          "correlationId"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "stable machine error code (study.<category>.<name>)"
          },
          "category": {
            "type": "string"
          },
          "message": {
            "type": "string",
            "description": "public, redaction-safe message"
          },
          "retryable": {
            "type": "boolean"
          },
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  }
}
